Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Research - 大模型深度研究系统

一个基于MCP(Model Context Protocol)协议的大模型深度研究系统,能够自动进行多轮搜索、信息提取和报告生成。

功能特点

  • 🔍 智能搜索: 基于用户查询自动生成多个搜索关键词,进行全面信息收集
  • 📊 信息筛选: 使用大模型判断网页内容的相关性,提取有价值的信息
  • 🔄 多轮迭代: 自动判断是否需要进一步搜索,确保信息完整性
  • 🖼️ 图片分析: 支持图片搜索和内容描述
  • 📝 报告生成: 自动将收集的信息整理成结构化的Markdown报告
  • 🔌 MCP协议: 基于Anthropic的MCP协议,实现标准化的工具调用

系统架构

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Client.py     │    │  search_mcp.py  │    │   SearXNG       │
│                 │    │                 │    │   搜索引擎      │
│ - 用户交互      │◄──►│ - MCP服务器     │◄──►│                 │
│ - 查询处理      │    │ - 工具调用      │    │ - 网页搜索      │
│ - 报告生成      │    │ - 内容提取      │    │ - 结果返回      │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Qwen API      │    │   Jina AI       │    │   日志系统      │
│                 │    │                 │    │                 │
│ - 查询生成      │    │ - 网页内容提取  │    │ - 调试信息      │
│ - 内容判断      │    │ - 文本清理      │    │ - 错误追踪      │
│ - 报告生成      │    │                 │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘

环境要求

  • Python 3.10
  • Docker & Docker Compose
  • 通义千问API Key (DASHSCOPE_API_KEY)

配置

1. 启动SearXNG搜索引擎

cd searxng-docker

# 启动服务
docker-compose up -d

2. 修改搜索服务地址

search_mcp.py 中修改搜索服务地址(第220行):

response = requests.get(
    f'http://localhost:8080/search?format=json&q={query}&language=zh-CN&time_range=&safesearch=0&categories={categories}', 
    timeout=10
)

使用方法

启动客户端

python client.py

示例查询

Query: 请撰写一篇关于"大模型MCP协议"的技术报告并插入图片

系统将自动:

  1. 生成多个搜索关键词
  2. 执行网页搜索
  3. 提取相关信息
  4. 判断是否需要进一步搜索
  5. 生成最终报告

(具体过程请参考logs中的文件,如mcp_detailed.log)

示例结果:test.md

项目结构

deepresearch/
├── client.py              # MCP客户端,处理用户交互
├── search_mcp.py          # MCP服务器,提供搜索工具
├── prompts.py             # 提示词模板
├── test.md               # 示例输出报告
├── logs/                 # 日志文件目录
├── searxng-docker/       # SearXNG搜索引擎配置
│   ├── docker-compose.yaml
│   ├── searxng/
│   │   └── settings.yml
│   └── .env
└── README.md

核心组件

1. MCP服务器 (search_mcp.py)

提供两个主要工具:

  • search(query): 执行深度搜索和信息提取
  • get_images(query): 获取图片链接和描述

2. MCP客户端 (client.py)

  • 连接MCP服务器
  • 处理用户查询
  • 协调多轮工具调用
  • 生成最终报告

3. 提示词系统 (prompts.py)

包含系统提示词模板:

  • 系统提示词
  • 下一步判断提示词
  • 最终报告生成提示词

日志与调试

系统提供详细的日志记录:

  • logs/mcp_server.log: MCP服务器日志
  • logs/mcp_stderr.log: 错误日志
  • logs/mcp_detailed.log: 详细调试日志
  • logs/client.log: 客户端日志

注意事项

  1. 确保SearXNG服务正常运行
  2. 检查API密钥是否正确设置
  3. 网络连接正常,能够访问外部API
  4. 日志目录需要有写入权限

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages