GPT Researcher 项目详细介绍
项目概述
GPT Researcher是一个开源的深度研究代理,专为对任何给定任务进行网络和本地研究而设计。该项目旨在生成详细、客观且无偏见的研究报告,并提供完整的引用信息。它提供了全套自定义选项,可创建定制化和特定领域的研究代理。
核心特性
主要功能
- 📝 使用网络和本地文档生成详细的研究报告
- 🖼️ 智能图像抓取和过滤功能
- 📜 生成超过2000字的详细报告
- 🌐 聚合20多个信息源以得出客观结论
- 🖥️ 提供轻量级(HTML/CSS/JS)和生产就绪(NextJS + Tailwind)前端版本
- 🔍 支持JavaScript的网页抓取
- 📂 在整个研究过程中保持记忆和上下文
- 📄 支持导出报告为PDF、Word等格式
Deep Research 深度研究功能
GPT Researcher现在包含Deep Research - 一个先进的递归研究工作流,能够以代理深度和广度探索主题。该功能采用树状探索模式,在保持研究主题全面视图的同时深入挖掘子主题。
Deep Research特性:
- 🌳 可配置深度和广度的树状探索
- ⚡️ 并发处理以获得更快结果
- 🤝 跨研究分支的智能上下文管理
- ⏱️ 每次深度研究约需5分钟
- 💰 每次研究成本约0.4美元(使用o3-mini的"高"推理努力)
技术架构
核心理念
该项目的核心思想是利用"规划者"和"执行者"代理。规划者生成研究问题,而执行代理收集相关信息。发布者然后将所有发现聚合成一份综合报告。
工作流程
- 基于研究查询创建特定任务的代理
- 生成能够形成任务客观观点的问题集合
- 使用爬虫代理为每个问题收集信息
- 总结每个资源并跟踪来源
- 过滤并聚合摘要成最终研究报告
解决的问题
GPT Researcher旨在解决以下研究挑战:
- 时间成本:人工研究得出客观结论可能需要数周时间,需要大量资源
- 信息过时:基于过时信息训练的LLM可能产生幻觉,对当前研究任务不相关
- 令牌限制:当前LLM的令牌限制不足以生成长篇研究报告
- 信息源有限:现有服务中有限的网络源导致误信息和浅层结果
- 偏见问题:选择性的网络源可能在研究任务中引入偏见
安装和使用
快速开始
环境要求:
- 安装Python 3.11或更高版本
步骤:
- 克隆项目并导航到目录:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcher
- 设置API密钥:
export OPENAI_API_KEY={Your OpenAI API Key here}
export TAVILY_API_KEY={Your Tavily API Key here}
- 安装依赖并启动服务器:
pip install -r requirements.txt
python -m uvicorn main:app --reload
- 访问 http://localhost:8000 开始使用
PIP包安装
pip install gpt-researcher
代码示例:
from gpt_researcher import GPTResearcher
query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query, report_type="research_report")
# 对给定查询进行研究
research_result = await researcher.conduct_research()
# 撰写报告
report = await researcher.write_report()
Docker部署
- 安装Docker
- 克隆'.env.example'文件,添加API密钥并保存为'.env'
- 在docker-compose文件中注释掉不想运行的服务
- 运行:
docker-compose up --build
默认情况下会启动两个进程:
- Python服务器运行在localhost:8000
- React应用运行在localhost:3000
本地文档研究
GPT Researcher支持基于本地文档进行研究任务。目前支持的文件格式包括:PDF、纯文本、CSV、Excel、Markdown、PowerPoint和Word文档。
设置步骤:
- 添加环境变量
DOC_PATH指向文档所在文件夹:
export DOC_PATH="./my-docs"
- 在前端应用中从"报告源"下拉选项中选择"我的文档",或在使用PIP包时将
report_source参数设置为"local"。
多智能体系统
随着AI从提示工程和RAG发展到多智能体系统,GPT Researcher引入了基于LangGraph构建的新多智能体助手。
通过使用LangGraph,研究过程可以通过利用具有专业技能的多个代理显著提高深度和质量。受到最近STORM论文的启发,该项目展示了AI代理团队如何协作进行给定主题的研究,从规划到发布。
平均运行生成5-6页的研究报告,支持PDF、Docx和Markdown等多种格式。
前端界面
GPT Researcher现在具有增强的前端界面,以改善用户体验并简化研究过程。前端提供:
- 用于输入研究查询的直观界面
- 研究任务的实时进度跟踪
- 研究发现的交互式显示
- 可定制的设置以获得定制化研究体验
提供两种部署选项:
- 由FastAPI提供服务的轻量级静态前端
- 具有高级功能的功能丰富的NextJS应用程序
技术特点
偏见控制
- 通过抓取多个网站减少错误和偏见事实
- 通过选择最频繁的信息,降低所有信息都错误的概率
- 不以消除偏见为目标,而是尽可能减少偏见
- 抓取多种观点,均匀解释多样化观点
性能优化
- 通过并行化代理工作提供稳定性能和提高速度
- 相比同步操作,异步处理提高效率
- 智能上下文管理确保研究连贯性
免责声明
GPT Researcher是一个实验性应用程序,按"原样"提供,不提供任何明示或暗示的保证。代码在Apache 2许可证下为学术目的共享。这里的内容不是学术建议,也不建议在学术或研究论文中使用。