科学工具
科学工具让世界更美好
让世界更美好

DeepRearch深度研究:基于Python的AI驱动智能搜索与深度研究解决方案DeepRearch深度研究:基于Python的AI驱动智能搜索与深度研究解决方案

DeepRearch深度研究是一个基于Python的AI驱动智能搜索与深度研究解决方案,通过Agent架构和精准搜索策略,帮助用户从海量信息中获取高质量、高相关性的资料,强调提升搜索资料的质量远比罗列上百个网页更有价值。DeepRearch主要功能和关键特性包括:支持完全本地部署,除大型模型API外不依赖任何在线服务;提供可视化的研究过程,实时“直播”AI从规划、搜索、评估到迭代深化的每一步;提供兼容OpenAI格式的API服务,便于集成;通过大模型对网页内容进行压缩,提高有效信息密度并扩大上下文访问范围;实现多个大型模型协同工作以充分发挥各自能力;允许用户通过提示词控制搜索语言和资料来源等过程;内置了大量精心设计的Prompt和消息处理机制,以精确引导LLM完成复杂的搜索规划、信息评估和内容生成任务,并已在Gemini 2.5 Flash模型上经过数十次测试无错误。

DeepRearch主要特性

• 所有服务都能本地部署,除大模型API外,不依赖任何在线服务

• 研究过程完全透明,会实时“直播”AI从初步规划、动态搜索、评估网页到迭代深化的每一步

• 基于Flask构建,提供符合OpenAI格式的API接口

• 借助大模型压缩网页内容,减少上下文长度,提高有效信息密度,相同上下文下能访问更多网页

• 多个大模型协同工作,充分发挥各自能力完成任务

• 用户通过提示词,能控制搜索使用的语言、资料来源限制等

• 内置大量精心设计的Prompt与消息处理,指导LLM完成复杂的搜索规划、信息评估和内容生成任务,全部使用Gemini 2.5 flash模型时,测试数十次未出现任何差错

DeepRearch研究流程

1、用户发起研究请求

2、DeepResearch分析请求,制定初步计划;若需要更多信息,会询问用户以完善计划

3、用户提供额外需求或确认后,开始核心研究循环:

• 生成搜索关键词 • 评估搜索结果价值,更新搜索计划 • 爬虫提取有价值网页 • 压缩内容,提高信息密度

4、判断信息是否足够,足够则生成最终报告,用户接收研究报告

DeepRearch安装和部署

提供两种部署方式:使用Docker(推荐)或直接在本地环境运行。

方法一:使用Docker(推荐)

这种方式最简单,不用手动管理Python环境和依赖。项目根目录已提供Dockerfiledocker-compose.yml文件。

启动服务

使用Docker Compose(推荐):项目根目录的docker-compose.yml文件内容如下:

version: '3'
services:
deepresearch:
    container_name: deepresearch
    image: cat3399/deepresearch:latest
    ports:
    - "5000:5000"
# volumes:
#   - ./.env:/app/.env # 若想使用本地的.env文件,取消此行注释

在项目根目录运行docker-compose up -d即可启动服务。注意:volumes部分默认被注释,若想将本地.env文件映射到容器,取消注释后再运行。

使用Docker CLI:若不使用Docker Compose,可直接运行docker run -d --name deepresearch -p 5000:5000 cat3399/deepresearch:latest

访问服务

服务启动后,通过http://127.0.0.1:5000访问API服务,或通过http://127.0.0.1:5000/setting访问可视化配置页面。

方法二:本地部署

1、环境准备:确保安装Python 3.8+,建议使用uvvenv等虚拟环境。

2、安装依赖:克隆仓库到本地后,在项目根目录运行pip install -r requirements.txt

3、配置环境变量:可通过http://127.0.0.1:5000/setting进入配置文件的webui进行可视化配置,保存后配置立即生效,不用重启服务。

快速上手(仅使用Gemini):复制.env.template文件并重命名为.env,只需在配置文件中填入ALL_IN_GEMINI_KEY。支持多个Gemini API Key,用英文逗号,分隔。此配置中,基础与总结模型使用2.5pro,评估使用2.5flash,压缩使用2.5flash lite,具体模型配置优先级高于默认值。

完整配置(适用于所有模型):复制.env.template文件并重命名为.env,根据实际情况填写必要的API密钥和URL。

• 所有模型的API_KEY字段支持填写多个密钥,用逗号,分隔,程序会随机选择使用。

• 除内容压缩模型外,若特定模型的配置项(如SEARCH_KEYWORD_API_KEY等)留空,系统默认使用BASE_CHAT_*的配置。

API_TYPE字段指定API格式,留空默认为OPENAI格式,除内容压缩模型,其余暂不支持Gemini格式(Gemini有OpenAI兼容模式)。

关键配置项说明:

基础配置API_KEY是访问本项目API服务时所需的授权密钥。

搜索引擎配置:优先使用SearXNG,请求失败时自动切换到Tavily。需配置SEARXNG_URL(自建或公共SearXNG实例,支持JSON格式输出)、TAVILY_KEY(Tavily服务的API密钥)等。

网页爬虫配置(至少配置一个):优先级为FireCrawl>Crawl4ai>Jina,需配置对应服务的URL和API密钥等。

搜索与研究参数:包括抓取网页时的并发任务数、普通/深度研究模式下处理的网页数量、深度研究模式的最大迭代次数等。

大模型(LLM)配置:包括基础对话模型、搜索关键词生成模型、搜索结果评估模型、网页内容压缩模型、最终总结生成模型的API密钥、URL、模型名称等。

4、运行服务:一键测试所有API是否正常可运行python main.py --test;在项目根目录运行python main.py,服务默认启动在http://0.0.0.0:5000

外部服务依赖

搜索引擎API(二选一):Searxng(自建或使用公共服务器,需开启JSON格式支持)、Tavily(通过官网获取API密钥)。

网页爬虫(三选一):FireCrawl(自建或使用官方API)、Crawl4AI(自建服务)、Jina(官方提供免费版,详见 https://jina.ai/reader/ )。

LLM:大模型API供应商提供的服务。

API使用示例

任何兼容OpenAI API格式的客户端(如LobeChat、One-API、OpenWebui、Cherry Studio)都能与服务交互。以Cherry Studio为例,API地址可设为http://127.0.0.1:5000http://127.0.0.1:5000/v1/chat/completions。使用带deep-research的模型ID可触发深度研究模式,支持的模型ID列表可通过/v1/models接口获取。

Python库依赖

包括Flask(Web框架)、OpenAI Python SDK(与OpenAI兼容的API交互)、Requests(HTTP请求库)、BeautifulSoup4(HTML/XML解析)、PyMuPDF、python-docx、openpyxl(解析PDF、DOCX、XLSX等文件)、python-dotenv(加载环境变量)等。完整依赖列表见requirements.txt

DeepRearch效果展示

当用户要求“获取gemini、claude、deepseek、glm、qwen全部对话模型的参数和官方api的价格,用表格清晰展示,确保数据完整,最后总结不遗漏”时,项目会:

1、分析需求,制定初步计划,包括针对每个模型搜索官方技术文档和定价页面、整理数据为表格、总结信息等。

2、根据用户进一步要求(如用英文搜索、表格按厂商分开、资料来源为官方)调整计划。

3、执行深度研究,最终生成按厂商分类的表格,包含模型名称、免费额度、上下文窗口、API支持、定价等信息,并进行总结。