项目简介

pyLLMSearch是一个功能强大的RAG(检索增强生成)系统,旨在通过对本地文档集合进行索引和检索,为大型语言模型(LLM)提供增强的上下文信息。它支持多种文档格式、先进的搜索技术(如混合搜索、重排序、HyDE、多查询)、会话历史,并可以通过内置Web界面或标准的Model Context Protocol (MCP) 接口进行交互。

主要功能点

  • 文档索引与管理: 快速解析并生成文档库的向量嵌入,支持增量更新,多种文档格式解析(PDF, Markdown, DOCX等)。
  • 先进的检索技术: 支持混合搜索(结合稀疏和稠密向量)、假设文档嵌入(HyDE)、多查询等,以提高检索质量。
  • 智能问答(RAG): 利用检索到的文档片段作为上下文,结合LLM生成高质量答案。
  • 会话历史支持: 维护聊天历史,帮助LLM理解后续问题中的上下文依赖。
  • MCP服务器接口: 通过JSON-RPC协议,提供标准的接口供MCP客户端(如Cursor, Windsurf, VSCode GH Copilot)访问文档资源和问答功能。
  • 多种LLM支持: 可配置对接OpenAI兼容API、HuggingFace模型、LiteLLM+Ollama等。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/snexus/llm-search.git
    cd llm-search
  2. 安装Python依赖:
    pip install -e .
  3. 创建 '.env' 文件:复制 '.env_template' 并根据需要配置API密钥(如 'OPENAI_API_KEY' 或 'GOOGLE_API_KEY')。
    cp .env_template .env
    # 编辑 .env 文件
  4. 准备文档文件和配置文件:将你的文档放入指定文件夹,并参照 'sample_templates' 目录创建或修改你的RAG配置文件(文档配置和模型配置)。
  5. 创建文档索引:运行命令行工具生成文档的向量嵌入和索引。
    python -m llmsearch index create -c /path/to/your_rag_config.yaml
    请将 '/path/to/your_rag_config.yaml' 替换为你的实际RAG配置文件路径。

服务器配置 (供MCP客户端使用)

MCP客户端连接pyLLMSearch MCP服务器时,需要配置服务器的启动命令及其参数。典型的配置信息如下,具体路径和参数需根据实际部署环境调整:

{
  "name": "pyLLMSearch MCP Server",
  "command": "/path/to/your/python_environment/bin/python",
  "args": [
    "-m",
    "llmsearch.api"
  ],
  "env": {
    "FASTAPI_RAG_CONFIG": "/path/to/your_rag_config.yaml",
    "FASTAPI_LLM_CONFIG": "/path/to/your_llm_config.yaml",
    "OPENAI_API_KEY": "your_openai_key_if_needed",
    "GOOGLE_API_KEY": "your_google_key_if_needed"
  }
}

参数注释:

  • '"name"': 服务器在客户端界面显示的名称。
  • '"command"': 启动服务器的Python解释器路径。请替换为你的Python虚拟环境或系统Python路径(例如,'/usr/local/bin/python' 或 '/home/user/myenv/bin/python')。
  • '"args"': 传递给Python解释器的参数。'-m llmsearch.api' 表示运行 'llmsearch.api' 模块作为 FastAPI 服务器,该服务器同时暴露了 MCP 接口。
  • '"env"': 启动服务器进程所需的环境变量。
    • '"FASTAPI_RAG_CONFIG"': 必需,指向RAG功能的YAML配置文件路径。请替换为你的配置文件路径。
    • '"FASTAPI_LLM_CONFIG"': 必需,指向LLM模型的YAML配置文件路径。请替换为你的配置文件路径。
    • 其他环境变量(如各种API密钥)根据你的模型配置需要添加。

基本使用方法

安装并创建索引后,按照上述“服务器配置”中的说明,将'command'和'args'以及必要的'env'配置到你的MCP客户端中。启动客户端并连接到配置的MCP服务器。客户端将能够通过pyLLMSearch MCP服务器进行文档搜索和问答。

你也可以通过命令行启动服务器 ('python -m llmsearch.api') 或启动内置的Web界面 ('python -m llmsearch interact webapp -c /path/to/your_doc_config_dir -m /path/to/your_model_config.yaml') 进行交互和测试。

信息

分类

AI与计算