GPT Researcher プロジェクト詳細紹介
プロジェクト概要
GPT Researcher は、与えられたタスクに対してウェブおよびローカルでの調査を行うために設計された、オープンソースのディープリサーチエージェントです。このプロジェクトは、詳細で客観的かつ偏りのない調査レポートを生成し、完全な引用情報を提供することを目的としています。カスタマイズされた、特定の分野に特化した調査エージェントを作成するための、あらゆるカスタムオプションを提供します。
コア機能
主要機能
- 📝 ウェブおよびローカルドキュメントを使用して詳細な調査レポートを生成
- 🖼️ インテリジェントな画像取得およびフィルタリング機能
- 📜 2000語以上の詳細なレポートを生成
- 🌐 20以上の情報源を集約して客観的な結論を導き出す
- 🖥️ 軽量(HTML/CSS/JS)および本番環境対応(NextJS + Tailwind)のフロントエンドバージョンを提供
- 🔍 JavaScript をサポートするウェブスクレイピング
- 📂 調査プロセス全体を通して記憶とコンテキストを保持
- 📄 レポートを PDF、Word などの形式でエクスポート可能
Deep Research 深度研究機能
GPT Researcher には、Deep Research という高度な再帰的調査ワークフローが含まれています。これは、エージェントの深度と広さでトピックを探索できます。この機能は、調査対象の包括的なビューを維持しながら、サブトピックを深く掘り下げるツリー状の探索パターンを採用しています。
Deep Research の特徴:
- 🌳 設定可能な深度と広さのツリー状探索
- ⚡️ より高速な結果を得るための並行処理
- 🤝 研究ブランチ間のインテリジェントなコンテキスト管理
- ⏱️ 1回の深度研究に約5分
- 💰 1回の研究コストは約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
デフォルトでは、2つのプロセスが起動します。
- 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 は、ユーザーエクスペリエンスを向上させ、研究プロセスを簡素化するために、強化されたフロントエンドインターフェースを備えています。フロントエンドは以下を提供します。
- 研究クエリを入力するための直感的なインターフェース
- 研究タスクのリアルタイムの進捗状況の追跡
- 研究結果のインタラクティブな表示
- カスタマイズされた研究体験のためのカスタマイズ可能な設定
2つのデプロイオプションを提供します。
- FastAPI によって提供される軽量な静的フロントエンド
- 高度な機能を備えた機能豊富な NextJS アプリケーション
技術的特徴
偏見制御
- 複数のウェブサイトをクロールして、エラーや偏った事実を減らす
- 最も頻繁な情報を選択することで、すべての情報が間違っている確率を下げる
- 偏見をなくすことを目標とするのではなく、可能な限り偏見を減らす
- さまざまな視点を取得し、多様な視点を均等に説明
パフォーマンス最適化
- エージェントの作業を並列化することで、安定したパフォーマンスを提供し、速度を向上させる
- 同期操作と比較して、非同期処理により効率が向上
- インテリジェントなコンテキスト管理により、研究の一貫性が確保される
免責事項
GPT Researcher は実験的なアプリケーションであり、「現状のまま」で提供され、明示または暗示を問わず、いかなる保証もありません。コードは Apache 2 ライセンスの下で学術目的で共有されています。ここにあるコンテンツは学術的なアドバイスではなく、学術論文や研究論文での使用は推奨されていません。