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": "..."
}
}
项目维护者
- Marco D'Alì - 项目负责人
- 社区贡献者 - 代码贡献者列表
📄 许可证
本项目遵循MIT开源协议,详见 LICENSE 文件。
⚠️ 重要提示
本文档中的所有示例和配置均为通用指导,具体实现需根据实际需求调整。
扫码加入微信群