智能搜索与深度研究:打造本地化 AI 驱动的高效信息采集平台
在信息爆炸的时代,简单地罗列大量网页链接已无法满足深度研究的需求。DeepRearch 项目应运而生,它基于 Python 实现,结合 AI 智能检索与多模型协同机制,帮助用户从海量数据中筛选出真正有价值的内容,并通过可视化流程,让研究过程透明、可控。
“
“提升搜索质量,胜过囫囵吞枣地堆砌数百个页面。”
目录
核心理念
传统搜索引擎往往以数量为导向,将海量搜索结果简单堆叠,用户需要自行筛选、判断质量。而 DeepRearch 核心在于:
-
质量优先:通过 AI 模型评估网页价值,只选取高相关度、高可用性的结果。 -
流程透明:研究过程可视化,实时“直播”从关键词生成到结果总结的每一步,让用户随时掌控方向。 -
多模型协同:不同阶段由不同大模型负责,从搜索关键词生成、结果评估,到内容压缩提取、最终总结,各司其职。
这种方法不仅提升了信息获取效率,也让研究结论更加精准、有深度。
主要特性
1. 完全本地部署
所有服务模块(除大模型 API)都可在本地运行,无需依赖外部在线服务。
-
安全可控:敏感数据和搜索流程仅在本地网络中流转。 -
可定制化:方便根据企业或个人需求进行功能扩展和二次开发。
2. 可视化研究过程
从初步规划、动态搜索、评估网页到迭代深化,整个流程可视化呈现。
“
用户可以实时看到 AI 如何:
拆分任务 调整搜索策略 选择最优结果
This transparency builds trust and helps users quickly定位问题节点。
3. 兼容 OpenAI 格式的 API 服务
基于 Flask 构建,提供标准的 /v1/chat/completions
和 /v1/models
接口,用户可直接对接现有 LLM 客户端。
-
流式响应:实时流回部分结果,提升交互体验。 -
智能模式切换:根据请求内容自动判断使用“普通搜索”还是“深度研究”模式。
4. 深度研究模式
deep-research
模式在普通搜索的基础上迭代多轮搜索、评估、提取、规划,实现对复杂问题的深入探索。下一节将详细解读。
5. 搜索引擎与爬虫灵活集成
支持多种搜索引擎(SearXNG、Tavily)和网页爬虫(FireCrawl、Crawl4AI),并可在它们之间自动切换,保证高可用性和抓取效果。
6. 网页内容压缩
利用大模型对抓取到的网页进行智能压缩,去除冗余信息,提升后续处理的效率和上下文密度。
7. 多模型协同工作
-
基础对话模型:处理用户交互、工具调度 -
搜索关键词生成模型:智能拆解查询、优化检索词 -
网页价值评估模型:对搜索结果进行相关性、价值打分 -
内容压缩与提取模型:提炼网页核心观点 -
结果总结模型:整合多源信息,形成连贯结论
这种流水线式协作确保各环节尽最大能力靠 AI 完成,最终呈现高质量的研究报告。
系统架构概览
下图展示了项目的主要组件与数据流向:
-
用户请求层
-
接收查询,路由到对应的研究模式
-
-
搜索引擎模块
-
支持 SearXNG/Tavily,生成原始搜索结果
-
-
爬虫服务
-
FireCrawl/Crawl4AI,抓取网页内容
-
-
模型调度层
-
负责调用不同大模型,执行关键词生成、评估、压缩、提取、总结等任务
-
-
结果输出层
-
将整理后的报告以 JSON/流式响应形式返回给客户端
-
该架构可水平扩展,用户可根据负载情况部署多实例。
外部服务集成
项目设计了两套二选一的外部服务方案,以提升灵活性和容错能力。
搜索引擎 API
-
SearXNG
-
可自建(Docker 部署)或使用公共实例 -
JSON 格式输出,易于解析
-
-
Tavily
-
商业 API,可通过 TAVILY_KEY
调用 -
支持多种搜索结果排序策略
-
系统优先尝试 SearXNG,若请求失败则自动切换到 Tavily。
网页爬虫
-
FireCrawl
-
自建或调用官方 API -
并发抓取性能优异
-
-
Crawl4AI
-
作为备用方案,兼容 Docker 部署
-
同样遵循优先级策略,保证在主服务不可用时仍能继续抓取。
深度研究模式
“深度研究”不仅是一次搜索,而是一套迭代探索方案,主要流程:
-
规划初始查询
-
由搜索关键词生成模型,将用户问题拆解成多个高效检索词
-
-
多轮搜索评估
-
每轮调用搜索引擎、爬虫,抓取 top N 页面 -
评估模型对每页内容进行价值打分,筛选高分页面
-
-
内容压缩与提取
-
压缩模型去除冗余 -
提取模型抽取页面核心观点
-
-
动态规划下一步
-
基于已收集内容,调整检索策略 -
新增或细化搜索关键词
-
-
终极总结
-
综合所有提取内容,由总结模型撰写连贯报告
-
“
建议配置:
MAX_DEEPRESEARCH_RESULTS
: 每轮处理页面数量(推荐 3)MAX_STEPS_NUM
: 最大迭代次数(推荐 12)
此模式可针对复杂主题(如技术调研、市场分析)进行深入探讨,避免一次性“过大”搜索导致无效信息泛滥。
环境准备与快速上手
1. 系统与 Python 环境
-
操作系统:Linux/macOS/Windows -
Python 版本:3.8 及以上 -
虚拟环境:推荐使用 venv
或者conda
# 克隆仓库
git clone https://your.repo/DeepRearch.git
cd DeepRearch
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
2. 配置环境变量
复制模板并编辑 .env
,填写必需的 API_KEY 和 URL:
cp .env.template .env
主要变量说明:
配置完成后,即可一键测试并启动服务:
# 测试所有 API 是否正常
python main.py --test
# 启动服务
python main.py
默认监听 http://0.0.0.0:5000
。
API 使用示例
以下示例以常见的 OpenAI-兼容客户端为基础,演示如何调用普通搜索和深度研究接口。
普通搜索模式
curl -X POST http://localhost:5000/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role":"user","content":"Linux 下如何启用 RK3399 的 QEMU KVM 加速?"}]
}'
-
返回流式段落,包含搜索关键词、评估结果及简要回答。
深度研究模式
curl -X POST http://localhost:5000/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-deep-research",
"messages": [{"role":"user","content":"请深入分析如何在 Linux 上对 RK3399 使用 QEMU 的 KVM 加速"}]
}'
-
将触发多轮迭代,最终输出包含:
-
关键词规划 -
各轮高质量网页精选 -
核心命令示例与配置方法 -
完整结论与注意事项
-
Python 库依赖
本项目所依赖的关键 Python 库列表如下,均在 requirements.txt
中声明:
-
Flask:轻量级 Web 框架 -
openai:OpenAI Python SDK -
requests:HTTP 请求库 -
beautifulsoup4:HTML/XML 解析 -
PyMuPDF、python-docx、openpyxl:多种文档格式解析 -
python-dotenv:加载环境变量
安装方式:
pip install Flask openai requests beautifulsoup4 PyMuPDF python-docx openpyxl python-dotenv
效果展示
以下示例展示了 DeepRearch 在实际场景中的输出效果。
多模型参数汇总
用户 Prompt:
“
获取 gemini、claude、deepseek、glm、qwen 等对话模型参数及官方 API 价格,并用表格展示。
项目输出示例:
冷门技术问题解答
用户 Prompt:
“
RK3399 在 Linux 下如何使用 QEMU 的 KVM 加速?
输出要点:
-
核心依赖 taskset
绑定大小核 -
KVM 模块加载与权限配置 -
性能对比数据与注意事项
已知问题与解决思路
虽然整体流程稳定,但在特定场景下仍有一些已知问题:
-
过早结束研究
-
原因:用户未在初始 Prompt 中指明“详细模式” -
解决:在请求中加入“深度研究”“详细研究”等关键词
-
-
客户端超时
-
原因:深度模式轮次过多、抓取时间过长
-
解决:
-
调低 MAX_STEPS_NUM
(如 ≤ 8) -
限制抓取并发数 CRAWL_THREAD_NUM
-
-
-
第三方服务不可用
-
原因:SearXNG 或 FireCrawl 实例停机 -
解决:检查环境变量配置,备用服务(Tavily/Crawl4AI)会自动切换
-
未来规划与贡献方式
🛠️ 未来规划
-
并发优化:引入异步调度,提升大规模任务吞吐量 -
插件化架构:支持更多外部服务(图像搜索、学术论文 API 等) -
智能问答:结合知识图谱,提供更丰富的上下文关联 -
可视化 Dashboard:实时监控任务进度与模型调用情况
🤝 如何贡献
-
Fork 仓库并创建分支 feature/xxx
-
提交 Pull Request,描述所改进功能或修复的问题 -
提交 Issue 讨论需求或报告 Bug
欢迎所有热爱 AI 驱动研究的同行共同完善 DeepRearch!