项目简介

RAG是一个强大的命令行工具,用于构建和查询 Retrieval Augmented Generation (RAG) 应用。除了命令行交互模式,它还提供了一个基于 Model Context Protocol (MCP) 的服务器实现,允许其他 LLM 客户端或应用程序通过标准化的 JSON-RPC 接口访问其核心 RAG 功能,如文档索引和知识检索。

主要功能点

  • 文档索引: 支持多种文件格式(PDF, DOCX, TXT, Markdown等),将文档处理、分块、嵌入并存储为向量库。支持增量索引。
  • 知识查询: 接收用户问题,利用索引的文档检索相关上下文,并结合大型语言模型生成回答。
  • 文档搜索: 根据关键词或向量相似度在文档库中查找相关的文档片段。
  • 文档管理: 列出已索引文件、获取文件详情、删除文件缓存等。
  • 缓存管理: 清理不再对应源文件的孤立缓存文件。
  • MCP 标准接口: 通过 JSON-RPC over Stdio 或 HTTP 提供上述功能,便于与符合 MCP 标准的客户端集成。

安装步骤

  1. 确保您已安装 Python 3.8 或更高版本。
  2. 使用 pip 安装项目:
    pip install rag
    项目可能需要一些额外的依赖来处理特定文件类型(如 PDF, DOCX 等)。您可能需要根据提示或项目文档安装这些可选依赖。
  3. (可选)为了使用基于 OpenAI 模型的嵌入和聊天功能,您需要设置 'OPENAI_API_KEY' 环境变量。

服务器配置

MCP客户端需要通过命令行参数启动 RAG MCP 服务器进程。MCP客户端通常会提供界面供用户输入这些参数,然后客户端负责启动服务器进程并通过指定的传输协议(如 Stdio)与之通信。

以下是 RAG MCP 服务器支持的关键启动参数,您需要根据实际情况配置它们给 MCP 客户端:

  • '--stdio' 或 '--http': 必需,指定服务器使用的传输协议。'--stdio' 使用标准输入输出(适合直接集成),'--http' 使用 HTTP 协议。
  • '--host <地址>': 仅用于 '--http' 模式,指定服务器监听的网络地址(默认为 127.0.0.1)。
  • '--port <端口>': 仅用于 '--http' 模式,指定服务器监听的端口号(默认为 8000)。
  • '--api-key <密钥>': 仅用于 '--http' 模式,设置一个 API 密钥用于简单的身份验证。客户端需要在 HTTP 请求的 'Authorization' 头部携带 'Bearer <密钥>'。
  • '--cache-dir <路径>': 必需,指定用于存储文档索引、向量库等缓存文件的目录。请确保目录存在且具有读写权限。
  • '--documents-dir <路径>': 必需,指定包含您要索引的原始文档文件的根目录。请确保目录存在且具有读写权限。
  • '--embedding-model <模型名称>': 指定用于生成文档嵌入的模型名称(默认为 text-embedding-3-small)。
  • '--chat-model <模型名称>': 指定用于生成回答的聊天模型名称(默认为 gpt-4)。
  • '--temperature <浮点数>': 控制聊天模型输出的随机性(默认为 0.0)。
  • '--chunk-size <整数>': 文档分块的最大尺寸(按 token 计算,默认为 1000)。
  • '--chunk-overlap <整数>': 文档分块之间的重叠大小(按 token 计算,默认为 200)。
  • '--debug': 启用调试日志输出,有助于排查问题。
  • '--log-file <路径>': 将日志输出到指定文件而不是标准错误。
  • '--json-logs': 以 JSON 格式输出日志。

MCP客户端通常会将这些参数构建成一个命令行数组(例如 '['python', '-m', 'rag', 'mcp', '--stdio', '--cache-dir', '/my/cache', '--documents-dir', '/my/docs']'),然后执行这个命令来启动RAG MCP服务器。

基本使用方法

启动 RAG MCP 服务器的最基本命令行示例如下(假设您使用 Stdio 协议,并将缓存和文档目录分别设置为 '/path/to/your/cache' 和 '/path/to/your/docs'):

python -m rag mcp --stdio --cache-dir /path/to/your/cache --documents-dir /path/to/your/docs

或者使用 HTTP 协议(监听本地 8000 端口,设置 API 密钥):

python -m rag mcp --http --host 127.0.0.1 --port 8000 --api-key your_secret_api_key --cache-dir /path/to/your/cache --documents-dir /path/to/your/docs

服务器启动后,会监听指定的传输接口,等待来自 MCP 客户端的 JSON-RPC 请求,例如索引文档、执行查询或获取文档列表。具体如何从 MCP 客户端调用服务器提供的工具,取决于您使用的 MCP 客户端实现。

信息

分类

AI与计算