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 許可證下為學術目的共享。這裡的內容不是學術建議,也不建議在學術或研究論文中使用。