RagRabbit

RagRabbit

🚀 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 文件。

⚠️ 重要提示

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

  • 0 关注
  • 0 收藏,18 浏览
  • system 提出于 2025-09-18 21:48

相似服务问题

相关AI产品