返回 MCP 目录
public公开dns本地运行

RagRabbit

RagRabbit是一个自托管的AI站点搜索和LLM.txt生成工具,支持一键部署在Vercel上。

article

README

🚀 RagRabbit - 智能文档检索与生成系统

RagRabbit 是一个基于大语言模型的智能文档检索与生成平台,支持通过语义搜索快速定位文档内容,并提供上下文关联分析功能,能有效提升文档处理效率。

🚀 快速开始

RagRabbit 是基于大语言模型的智能文档检索与生成平台,可通过语义搜索定位文档内容,还具备上下文关联分析功能。下面为你介绍其核心组件:

  • 智能检索引擎:利用向量数据库实现语义相似度匹配
  • 上下文关联分析:基于文本挖掘技术进行多轮对话支持
  • 知识图谱构建:自动生成文档间的关联关系
  • 可插拔AI模型:支持多种大语言模型(如LLama系列)

📦 安装指南

基本安装

安装依赖

pnpm install @ragrabbit/core @ragrabbit/ui

初始化配置文件

创建一个名为 config.json 的配置文件:

{
  "apiPort": 3000,
  "vectorDBConfig": {
    "type": "chroma",
    "host": "localhost",
    "port": 2000
  },
  "llmModel": {
    "type": "llama2"
  }
}

启动服务

pnpm run dev

配置指南

智能检索模块配置

通过 vectorDBConfig 可以指定不同的向量数据库实现:

{
  "vectorDBConfig": {
    "type": "faiss", // 支持的类型包括:chroma, faiss, milvus
    "host": "localhost",
    "port": 6345
  }
}

大语言模型配置

支持多种主流模型:

{
  "llmModel": {
    "type": "gpt-3", // 支持的类型包括:gpt-3, llama2, alpaca
    "apiEndpoint": "https://api.example.com/v1",
    "apiKey": "your-api-key"
  }
}

MPC服务器集成

搭建MPC服务器

通过 @ragrabbit/mcp 包快速搭建:

npx @ragrabbit/mcp start --port 3001

配置AI客户端

在Claude Desktop中配置:

编辑 claude_desktop_config.json 文件,添加如下内容:

{
  "mcpServers": {
    "my-documentation": {
      "command": "npx",
      "args": ["@ragrabbit/mcp", "start"]
    }
  }
}
在ChatGPT中配置:

通过环境变量设置MPC服务器地址:

export MPC_SERVER=http://localhost:3001

与Fumadocs集成

快速集成

在项目根目录下运行以下命令:

pnpm install @fumadocs/extension-rag

配置示例

添加如下配置到 config.json 文件中:

{
  "fumaIntegration": {
    "enabled": true,
    "apiKey": "your-fuma-api-key",
    "workspaceId": "your-workspace-id"
  }
}

开发指南

环境搭建

git clone https://github.com/ragrabbit-project/rag.git
cd rag
pnpm install

核心组件开发

向量数据库接口

实现自定义向量数据库:

interface VectorDB {
  init(): Promise<void>;
  addVectors(vectors: number[], metadata: object[]): Promise<string[]>;
  searchSimilar(id: string, k: number): Promise<SearchResult[]>;
}
文本处理管道

定义文本处理流程:

class TextProcessingPipeline {
  private tokenizer;
  private embeddings;

  constructor() {
    this.tokenizer = new Tokenizer();
    this.embeddings = new LlamaEmbedder();
  }

  async process(text: string): Promise<ProcessedText> {
    const tokens = this.tokenizer.tokenize(text);
    const embeds = await this.embeddings.embed(tokens);
    return { tokens, embeddings: embeds };
  }
}

贡献指南

欢迎社区贡献代码!请参考 CONTRIBUTING.md 文件了解具体流程。

💻 使用示例

基础用法

const rag = new RagManager({
  vectorDB: new ChromaDB(),
  llm: new Llama2()
});

async function search(query: string) {
  const results = await rag.search(query, { limit: 5 });
  return results.map(r => r.metadata);
}

📚 详细文档

核心功能

  • 智能检索:通过自然语言查询快速定位文档
  • 上下文关联:支持多轮对话和历史记录
  • 知识图谱:自动生成文档间关系网络
  • 插件扩展:支持多种大语言模型和存储后端

文档结构

根目录结构

project/
├── config.json          # 全局配置文件
├── package.json        # 项目依赖管理
├── src/                # 源代码目录
│   ├── core/           # 核心算法模块
│   └── ui/             # 用户界面组件
└── public/             # 静态资源目录

配置文件说明

config.json
{
  "mode": "development",      # 模式:开发或生产
  "vectorDBConfig": {         # 向量数据库配置
    "type": "chroma",
    "host": "localhost",
    "port": 2000
  },
  "llmModel": {               # 大语言模型配置
    "type": "gpt-3",
    "apiKey": "..."
  }
}

项目维护者

📄 许可证

本项目遵循MIT开源协议,详见 LICENSE 文件。

⚠️ 重要提示

本文档中的所有示例和配置均为通用指导,具体实现需根据实际需求调整。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端