返回市场
本地检索助手

本地检索助手

作者:zeyangxu2 星标更新:2025-03-30

项目介绍

使用MCP服务器的PDF检索增强生成系统

本项目实现了一个带有MCP服务器的检索增强生成(RAG)系统,该系统允许Claude访问并查询大型PDF文件中的信息。它使用Chroma作为向量数据库。

预备条件

  • Node.js (v14或更高版本)
  • npm (v6或更高版本)
  • 安装了ChromaDB的Python 3.9+
  • OpenAI API密钥(用于嵌入)

设置

  1. 克隆仓库
  2. 安装依赖项:
    npm install
    
  3. 安装Python依赖项:
    python3 -m pip install chromadb
    
  4. 编辑.env文件以配置环境变量:
    OPENAI_API_KEY=your_openai_api_key
    PORT=3000  # MCP服务器的端口
    

使用

1. 添加PDF文件

将您的PDF文件放置在data/pdfs目录下:

data/
  pdfs/
    your-file1.pdf
    your-file2.pdf

2. 启动Chroma服务器

启动Chroma数据库服务器:

./start-chroma.sh

或者手动启动:

python3 -m chromadb.cli.cli run --path ./data/chroma_db

这将在http://localhost:8000启动一个Chroma服务器。

3. 处理PDF文件

在新的终端中处理PDF文件并创建向量存储:

npm run ingest

这将:

  • 从PDF文件中提取文本
  • 将文本分割成块
  • 创建嵌入
  • 将向量存储到Chroma数据库中

4. 启动MCP服务器

在另一个终端中启动服务器:

npm run dev

MCP服务器将在:http://localhost:3000/api/mcp/query可用。

5. 查询MCP服务器

您可以使用Claude或REST客户端查询系统:

POST http://localhost:3000/api/mcp/query
Content-Type: application/json

{
  "query": "文档中关于...的内容是什么",
  "topK": 5  # 可选,返回的结果数量
}

Claude集成

要通过MCP与Claude一起使用此系统:

  1. 配置Claude以使用MCP端点
  2. 确保Claude可以访问此服务器
  3. 现在Claude可以通过RAG系统查询您的PDF内容

项目结构

  • src/
    • index.ts - 主服务器文件
    • ingest.ts - 处理PDF文件的脚本
    • services/
      • documentProcessor.ts - PDF处理和Chroma数据库操作
      • mmpService.ts - 供Claude使用的MCP服务
    • routes/
      • mcpRoutes.ts - MCP的API路由
    • utils/
      • env.ts - 环境变量工具
  • data/
    • pdfs/ - 存放PDF文件的目录
    • chroma_db/ - 存放Chroma向量数据库的目录
  • start-chroma.sh - 启动Chroma服务器的脚本

许可证

MIT </中文翻译>