项目简介

Datavizion RAG 是一个功能丰富的桌面应用,用于本地文档的爬取、管理和问答。其核心功能被封装在一个独立的后台服务中,该服务遵循 Model Context Protocol (MCP),能够为兼容的 LLM 客户端提供文档检索(RAG)和 LLM 问答能力。

主要功能点

  • 文档摄取与管理: 支持从本地文件(PDF, DOCX, TXT, MD)和指定网址(文本内容及 PDF 链接发现)导入文档,并进行基本管理。
  • 向量索引: 利用 Qdrant 向量数据库对文档内容进行分块和向量化,构建可搜索的知识库。支持不同的索引策略(如块大小、重叠)。
  • 上下文检索 (RAG): 根据用户查询,从向量索引中检索最相关的文档片段作为上下文。
  • LLM 问答: 将用户查询和检索到的上下文发送给配置的 LLM 模型(支持 OpenAI, LM Studio, Ollama, Jan, GPT4All 等接口),生成最终答案。
  • MCP 服务器: 将上述 RAG 核心能力封装为一个遵循 MCP 协议的后台服务,允许任何兼容的 MCP 客户端通过标准接口调用这些功能。

安装步骤

要运行 Datavizion RAG 的后台服务,你需要先安装一些依赖:

  1. 安装 Docker: Qdrant 向量数据库默认通过 Docker 运行。请根据你的操作系统(Windows/macOS/Linux)下载并安装 Docker Desktop。 参考链接: 'https://www.docker.com/get-started'

  2. 克隆仓库: 将 Datavizion-RAG 代码仓库克隆到本地。

    git clone https://github.com/zoner72/Datavizion-RAG.git
    cd Datavizion-RAG
  3. 创建并激活 Python 虚拟环境: 推荐使用虚拟环境隔离项目依赖。

    python3 -m venv .venv
    source .venv/bin/activate   # macOS/Linux
    # 或者在 Windows 上: .venv\Scripts\activate
  4. 安装 Python 依赖: 安装项目所需的 Python 库,包括用于运行 MCP 服务器和核心 RAG 逻辑的库。

    pip install -r requirements.txt
  5. 启动 Qdrant 容器: 使用项目提供的 Docker Compose 文件启动 Qdrant 向量数据库。

    docker-compose up -d

    请确保 Docker 正在运行。Qdrant 启动可能需要一些时间,等待其完全可用。

服务器配置 (面向 MCP 客户端用户)

Datavizion RAG 的 MCP 服务器实现为 'scripts/llm/rag_mcp_server.py' 文件。它作为一个独立的进程运行,并通过标准输入/输出(Stdio)与 MCP 客户端通信。

MCP 客户端需要配置 MCP 服务器的连接信息,通常是一个包含 'command' 和 'args' 的 JSON 对象,以及服务器的名称。

以下是连接到 Datavizion RAG MCP 服务器所需的典型配置信息示例:

  • Server Name: 这是一个用户友好的名称,例如 "Datavizion RAG Server"。
  • Command: 启动服务器进程的命令。在大多数系统上,这将是用于运行 Python 脚本的 Python 解释器路径。
  • Args: 传递给 Python 解释器的参数列表。第一个参数是服务器脚本的路径,后续参数可能包括配置路径等。

重要提示: MCP 服务器需要读取 Datavizion 应用程序的主配置文件 ('config/config.json') 来获取 LLM 接口、Qdrant 连接等详细设置。服务器通过读取特定的环境变量来找到此配置文件。启动服务器时,你需要设置 'KNOWLEDGE_LLM_CONFIG_PATH' 环境变量指向你的 'config/config.json' 文件路径。

MCP 客户端配置结构示例 (JSON 格式说明):

{
  "name": "Datavizion RAG Server",
  "transport": "stdio",
  "stdio_parameters": {
    "command": "/path/to/your/python", // 替换为你的 Python 解释器路径,例如: /usr/local/bin/python3
    "args": [
      "/path/to/your/Datavizion-RAG/scripts/llm/rag_mcp_server.py" // 替换为你的 rag_mcp_server.py 实际路径
    ],
    "environment": {
      "KNOWLEDGE_LLM_CONFIG_PATH": "/path/to/your/Datavizion-RAG/config/config.json", // 替换为你的 config.json 实际路径
      "PYTHONPATH": "/path/to/your/Datavizion-RAG" // 添加项目根目录到 PYTHONPATH,以便服务器能找到内部模块
      // 根据需要添加其他环境变量,如激活虚拟环境所需的 PATH 调整等
    }
  }
  // 其他 MCP 客户端可能需要的配置,例如工具声明、能力列表等
}

请注意:MCP 客户端的具体配置界面和格式可能因客户端实现而异。上述结构旨在说明连接 Datavizion RAG MCP 服务器所需的核心信息(启动命令、脚本路径、配置路径环境变量)。

基本使用方法 (面向 MCP 客户端用户)

一旦你的 MCP 客户端正确配置了连接信息并成功启动了 Datavizion RAG MCP 服务器进程,你就可以通过客户端与服务器交互:

  1. 建立连接: 客户端启动服务器进程并建立 Stdio 通道连接。
  2. 初始化会话: 客户端发送 MCP 初始化请求,服务器回应其能力(例如,声明支持的工具)。
  3. 调用工具: 客户端发送 MCP 请求,调用服务器提供的 RAG 工具。根据代码分析,服务器应暴露一个名为 'rag_query' 的工具,接收一个包含 'query' 字符串的参数对象。
    • 工具名称: 'rag_query'
    • 参数: 一个对象,至少包含一个键 'query',其值是用户的问答字符串。
    • 示例请求负载: '{"query": "我的文档中关于 Docker Compose 的内容是什么?"}'
  4. 接收响应: 服务器执行 RAG 流程(检索相关文档,调用配置的 LLM),然后将生成的答案作为 MCP 响应返回给客户端。

通过这种方式,任何兼容的 MCP 客户端都可以利用 Datavizion RAG 强大的本地 RAG 能力。

项目关键词

RAG, 文档问答, 向量数据库, LLM 集成, 后端服务

信息

分类

AI与计算