项目简介

该项目是一个为大型语言模型(LLM)设计的轻量级深度联网搜索解决方案。它聚合了多个搜索引擎的结果,提供了结果评估和反思机制,旨在提高LLM的搜索质量和上下文理解能力。同时,它也实现了MCP服务器,可以将强大的联网搜索能力作为标准工具提供给兼容MCP协议的LLM客户端。

主要功能点

  • 多引擎聚合搜索: 支持百度、DuckDuckGo、Bocha、Tavily等多个搜索引擎,并将结果进行智能聚合。
  • 深度反思与评估: 通过内置的LLM对搜索结果进行质量和相关性评估,并根据评估结果优化搜索策略。
  • 可定制的搜索流程: 可以调整搜索的深度(reflection次数)和宽度(子任务数量)。
  • LLM框架无关: 核心搜索逻辑可独立使用,也可以通过MCP服务器暴露为标准工具。
  • MCP服务器支持: 提供符合MCP协议的服务器端实现,方便LLM客户端集成调用。

安装步骤

  1. 创建并激活conda环境:
    conda create -n deepsearch_lightning python==3.11
    conda activate deepsearch_lightning
  2. 安装依赖:
    pip install -r requirements.txt
    # 可选:如果需要langchain支持,安装额外依赖
    # pip install -r requirements_langchain.txt
  3. 配置环境变量:
    • 复制 '.env.examples' 文件并重命名为 '.env'。
    • 根据注释填写您的LLM模型API信息(目前支持OpenAI风格API)。
    • 根据需要配置启用的搜索引擎及其API密钥和最大结果数。

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

本仓库包含一个可运行的MCP服务器 ('mcp_server.py'),它将深度搜索功能作为一个名为 'web_search_tools' 的MCP工具暴露出来。

您的MCP客户端需要知道如何启动或连接到这个服务器。典型的MCP客户端配置需要以下信息:

  • 服务器名称 (server_name): 'web_search_tools' (这是服务器在网络中声明的名称)
  • 启动命令 (command): 'python' (启动服务器脚本的解释器)
  • 启动参数 (args): '["mcp_server.py"]' (传递给命令的脚本文件)
  • 传输协议 (transport): 'sse' (服务器使用的通信协议)
  • 连接地址 (url): 通常是 'http://localhost:8000/sse' (根据服务器实际启动的地址和端口确定,默认使用SSE协议在8000端口运行)

客户端可以使用 'command' 和 'args' 来自动启动服务器进程,或使用 'url' 和 'transport' 来连接到已运行的服务器。

基本使用方法

  1. 启动MCP服务器: 打开终端,激活conda环境,然后在项目根目录运行:

    python mcp_server.py

    服务器将默认在 'http://localhost:8000' 地址通过SSE协议监听请求。

  2. 使用MCP客户端连接: 启动您兼容MCP协议的LLM客户端(例如本仓库提供的 'langgraph_mcp_client.py' 示例)。客户端需要配置连接信息(参考上文的服务器配置)。 示例客户端运行命令:

    python langgraph_mcp_client.py

    客户端连接成功后,即可通过调用名为 'web_search_tools' 的工具来利用本服务提供的联网搜索能力。具体的工具调用方式取决于您的MCP客户端实现。

信息

分类

网页与API