项目简介
该项目是一个为大型语言模型(LLM)设计的轻量级深度联网搜索解决方案。它聚合了多个搜索引擎的结果,提供了结果评估和反思机制,旨在提高LLM的搜索质量和上下文理解能力。同时,它也实现了MCP服务器,可以将强大的联网搜索能力作为标准工具提供给兼容MCP协议的LLM客户端。
主要功能点
- 多引擎聚合搜索: 支持百度、DuckDuckGo、Bocha、Tavily等多个搜索引擎,并将结果进行智能聚合。
- 深度反思与评估: 通过内置的LLM对搜索结果进行质量和相关性评估,并根据评估结果优化搜索策略。
- 可定制的搜索流程: 可以调整搜索的深度(reflection次数)和宽度(子任务数量)。
- LLM框架无关: 核心搜索逻辑可独立使用,也可以通过MCP服务器暴露为标准工具。
- MCP服务器支持: 提供符合MCP协议的服务器端实现,方便LLM客户端集成调用。
安装步骤
- 创建并激活conda环境:
conda create -n deepsearch_lightning python==3.11 conda activate deepsearch_lightning - 安装依赖:
pip install -r requirements.txt # 可选:如果需要langchain支持,安装额外依赖 # pip install -r requirements_langchain.txt - 配置环境变量:
- 复制 '.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' 来连接到已运行的服务器。
基本使用方法
-
启动MCP服务器: 打开终端,激活conda环境,然后在项目根目录运行:
python mcp_server.py服务器将默认在 'http://localhost:8000' 地址通过SSE协议监听请求。
-
使用MCP客户端连接: 启动您兼容MCP协议的LLM客户端(例如本仓库提供的 'langgraph_mcp_client.py' 示例)。客户端需要配置连接信息(参考上文的服务器配置)。 示例客户端运行命令:
python langgraph_mcp_client.py客户端连接成功后,即可通过调用名为 'web_search_tools' 的工具来利用本服务提供的联网搜索能力。具体的工具调用方式取决于您的MCP客户端实现。
信息
分类
网页与API