deer-flow/README_ja.md
2025-05-12 22:53:42 +08:00

21 KiB
Raw Blame History

🦌 DeerFlow

Python 3.12+ License: MIT

English | 简体中文 | 日本語 | Deutsch

オープンソースから生まれ、オープンソースに還元する。

DeerFlowDeep Exploration and Efficient Research Flowは、オープンソースコミュニティの素晴らしい成果の上に構築されたコミュニティ主導の深層研究フレームワークです。私たちの目標は、言語モデルとウェブ検索、クローリング、Pythonコード実行などの専門ツールを組み合わせながら、これを可能にしたコミュニティに貢献することです。

詳細についてはDeerFlowの公式ウェブサイトをご覧ください。

デモ

ビデオ

https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e

このデモでは、DeerFlowの使用方法を紹介しています

  • MCPサービスとのシームレスな統合
  • 深層研究プロセスの実施と画像を含む包括的なレポートの作成
  • 生成されたレポートに基づくポッドキャストオーディオの作成

リプレイ例


📑 目次

クイックスタート

DeerFlowはPythonで開発され、Node.jsで書かれたWeb UIが付属しています。スムーズなセットアッププロセスを確保するために、以下のツールの使用をお勧めします

推奨ツール

  • uv: Python環境と依存関係の管理を簡素化します。uvはルートディレクトリに自動的に仮想環境を作成し、必要なパッケージをすべてインストールします—Python環境を手動でインストールする必要はありません。

  • nvm: 複数のNode.jsランタイムバージョンを簡単に管理します。

  • pnpm: Node.jsプロジェクトの依存関係をインストールおよび管理します。

環境要件

システムが以下の最小要件を満たしていることを確認してください:

インストール

# リポジトリをクローン
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow

# 依存関係をインストール、uvがPythonインタープリタと仮想環境の作成、必要なパッケージのインストールを担当
uv sync

# APIキーで.envを設定
# Tavily: https://app.tavily.com/home
# Brave_SEARCH: https://brave.com/search/api/
# 火山引擎TTS: TTSの資格情報がある場合は追加
cp .env.example .env

# 下記の「サポートされている検索エンジン」と「テキスト読み上げ統合」セクションですべての利用可能なオプションを確認

# LLMモデルとAPIキーのconf.yamlを設定
# 詳細は「docs/configuration_guide.md」を参照
cp conf.yaml.example conf.yaml

# PPT生成用にmarpをインストール
# https://github.com/marp-team/marp-cli?tab=readme-ov-file#use-package-manager
brew install marp-cli

オプションで、pnpmを使用してWeb UI依存関係をインストール

cd deer-flow/web
pnpm install

設定

詳細については設定ガイドを参照してください。

[!注意] プロジェクトを開始する前に、ガイドを注意深く読み、特定の設定と要件に合わせて構成を更新してください。

コンソールUI

プロジェクトを実行する最も迅速な方法は、コンソールUIを使用することです。

# bashライクなシェルでプロジェクトを実行
uv run main.py

Web UI

このプロジェクトにはWeb UIも含まれており、より動的で魅力的なインタラクティブ体験を提供します。

[!注意] 先にWeb UIの依存関係をインストールする必要があります。

# 開発モードでバックエンドとフロントエンドサーバーの両方を実行
# macOS/Linuxの場合
./bootstrap.sh -d

# Windowsの場合
bootstrap.bat -d

ブラウザを開き、http://localhost:3000にアクセスしてWeb UIを探索してください。

webディレクトリで詳細を確認できます。

サポートされている検索エンジン

DeerFlowは複数の検索エンジンをサポートしており、.envファイルのSEARCH_API変数で設定できます:

  • TavilyデフォルトAI アプリケーション向けの専門検索 API

  • DuckDuckGo:プライバシー重視の検索エンジン

    • APIキー不要
  • Brave Search:高度な機能を備えたプライバシー重視の検索エンジン

  • Arxiv:学術研究用の科学論文検索

    • APIキー不要
    • 科学・学術論文専用

お好みの検索エンジンを設定するには、.envファイルでSEARCH_API変数を設定します:

# 選択肢: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily

特徴

コア機能

  • 🤖 LLM統合
    • litellmを通じてほとんどのモデルの統合をサポート
    • Qwenなどのオープンソースモデルをサポート
    • OpenAI互換のAPIインターフェース
    • 異なるタスクの複雑さに対応するマルチティアLLMシステム

ツールとMCP統合

  • 🔍 検索と取得

    • Tavily、Brave Searchなどを通じたWeb検索
    • Jinaを使用したクローリング
    • 高度なコンテンツ抽出
  • 🔗 MCPシームレス統合

    • プライベートドメインアクセス、ナレッジグラフ、Webブラウジングなどの機能を拡張
    • 多様な研究ツールと方法論の統合を促進

人間との協力

  • 🧠 人間参加型ループ

    • 自然言語を使用した研究計画の対話的修正をサポート
    • 研究計画の自動承認をサポート
  • 📝 レポート後編集

    • Notionライクなブロック編集をサポート
    • AI支援による洗練、文の短縮、拡張などのAI改良を可能に
    • tiptapを活用

コンテンツ作成

  • 🎙️ ポッドキャストとプレゼンテーション生成
    • AI駆動のポッドキャストスクリプト生成と音声合成
    • シンプルなPowerPointプレゼンテーションの自動作成
    • カスタマイズ可能なテンプレートで個別のコンテンツに対応

アーキテクチャ

DeerFlowは、自動研究とコード分析のためのモジュラーなマルチエージェントシステムアーキテクチャを実装しています。システムはLangGraph上に構築され、コンポーネントが明確に定義されたメッセージパッシングシステムを通じて通信する柔軟な状態ベースのワークフローを実現しています。

アーキテクチャ図

deerflow.techでライブで確認できます

システムは以下のコンポーネントを含む合理化されたワークフローを採用しています:

  1. コーディネーター:ワークフローのライフサイクルを管理するエントリーポイント

    • ユーザー入力に基づいて研究プロセスを開始
    • 適切なタイミングでプランナーにタスクを委託
    • ユーザーとシステム間の主要なインターフェースとして機能
  2. プランナー:タスク分解と計画のための戦略的コンポーネント

    • 研究目標を分析し、構造化された実行計画を作成
    • 十分なコンテキストが利用可能か、さらなる研究が必要かを判断
    • 研究フローを管理し、最終レポート生成のタイミングを決定
  3. 研究チーム:計画を実行する専門エージェントの集合:

    • 研究者Web検索エンジン、クローリング、さらにはMCPサービスなどのツールを使用してWeb検索と情報収集を行う。
    • コーダーPython REPLツールを使用してコード分析、実行、技術的タスクを処理する。 各エージェントは自分の役割に最適化された特定のツールにアクセスでき、LangGraphフレームワーク内で動作する
  4. レポーター:研究出力の最終段階プロセッサ

    • 研究チームの調査結果を集約
    • 収集した情報を処理および構造化
    • 包括的な研究レポートを生成

テキスト読み上げ統合

DeerFlowには現在、研究レポートを音声に変換できるテキスト読み上げTTS機能が含まれています。この機能は火山引擎TTS APIを使用して高品質なテキストオーディオを生成します。速度、音量、ピッチなどの特性もカスタマイズ可能です。

TTS APIの使用

/api/ttsエンドポイントからTTS機能にアクセスできます

# curlを使用したAPI呼び出し例
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
    "text": "これはテキスト読み上げ機能のテストです。",
    "speed_ratio": 1.0,
    "volume_ratio": 1.0,
    "pitch_ratio": 1.0
}' \
--output speech.mp3

開発

テスト

テストスイートの実行:

# すべてのテストを実行
make test

# 特定のテストファイルを実行
pytest tests/integration/test_workflow.py

# カバレッジテストを実行
make coverage

コード品質

# コードチェックを実行
make lint

# コードをフォーマット
make format

LangGraph Studioによるデバッグ

DeerFlowはワークフローアーキテクチャとしてLangGraphを使用しています。LangGraph Studioを使用してワークフローをリアルタイムでデバッグおよび可視化できます。

ローカルでLangGraph Studioを実行

DeerFlowにはlanggraph.json設定ファイルが含まれており、これがLangGraph Studioのグラフ構造と依存関係を定義しています。このファイルはプロジェクトで定義されたワークフローグラフを指し、.envファイルから環境変数を自動的に読み込みます。

Mac
# uvパッケージマネージャがない場合はインストール
curl -LsSf https://astral.sh/uv/install.sh | sh

# 依存関係をインストールしLangGraphサーバーを開始
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
Windows / Linux
# 依存関係をインストール
pip install -e .
pip install -U "langgraph-cli[inmem]"

# LangGraphサーバーを開始
langgraph dev

LangGraphサーバーを開始すると、端末にいくつかのURLが表示されます

ブラウザでStudio UIリンクを開いてデバッグインターフェースにアクセスします。

LangGraph Studioの使用

Studio UIでは、次のことができます

  1. ワークフローグラフを可視化し、コンポーネントの接続方法を確認
  2. 実行をリアルタイムで追跡し、データがシステム内をどのように流れるかを理解
  3. ワークフローの各ステップの状態を検査
  4. 各コンポーネントの入力と出力を検査して問題をデバッグ
  5. 計画段階でフィードバックを提供して研究計画を洗練

Studio UIで研究トピックを送信すると、次を含む全ワークフロー実行プロセスを見ることができます

  • 研究計画を作成する計画段階
  • 計画を修正できるフィードバックループ
  • 各セクションの研究と執筆段階
  • 最終レポート生成

以下の例はDeerFlowの機能を示しています

研究レポート

  1. OpenAI Soraレポート - OpenAIのSora AIツールの分析

  2. GoogleのAgent to Agentプロトコルレポート - GoogleのAgent to AgentA2Aプロトコルの概要

    • AI エージェント通信における役割と、AnthropicのModel Context ProtocolMCPとの関係について議論
    • 完全なレポートを見る
  3. MCPとは何か - 複数のコンテキストにおける「MCP」という用語の包括的分析

    • AIにおけるModel Context Protocol、化学におけるMonocalcium Phosphate、電子工学におけるMicro-channel Plateを探る
    • 完全なレポートを見る
  4. ビットコイン価格変動 - 最近のビットコイン価格動向の分析

  5. LLMとは何か - 大規模言語モデルの詳細な探求

  6. Claudeを使った深層研究の方法は - 深層研究でのClaudeの使用に関するベストプラクティスとワークフロー

  7. 医療におけるAI採用影響要因 - 医療におけるAI採用に影響する要因の分析

    • AIテクロジー、データ品質、倫理的考慮、経済的評価、組織の準備状況、デジタルインフラについて議論
    • 完全なレポートを見る
  8. 量子コンピューティングの暗号学への影響 - 量子コンピューティングの暗号学への影響の分析

  9. クリスティアーノ・ロナウドのパフォーマンスハイライト - クリスティアーノ・ロナウドのパフォーマンスハイライトの分析

これらの例を実行したり、独自の研究レポートを作成したりするには、次のコマンドを使用できます:

# 特定のクエリで実行
uv run main.py "医療におけるAI採用に影響する要因は何か"

# カスタム計画パラメータで実行
uv run main.py --max_plan_iterations 3 "量子コンピューティングは暗号学にどのように影響するか?"

# 組み込み質問を使用したインタラクティブモードで実行
uv run main.py --interactive

# または基本的なインタラクティブプロンプトで実行
uv run main.py

# 利用可能なすべてのオプションを表示
uv run main.py --help

インタラクティブモード

アプリケーションは現在、英語と中国語の組み込み質問を使用したインタラクティブモードをサポートしています:

  1. インタラクティブモードを開始:

    uv run main.py --interactive
    
  2. 好みの言語EnglishまたはChineseを選択

  3. 組み込み質問リストから選択するか、独自の質問を提示するオプションを選択

  4. システムが質問を処理し、包括的な研究レポートを生成

人間参加型ループ

DeerFlowには人間参加型ループメカニズムが含まれており、研究計画を実行する前にレビュー、編集、承認することができます

  1. 計画レビュー:人間参加型ループが有効な場合、システムは実行前に生成された研究計画を表示

  2. フィードバック提供:次のことができます:

    • [ACCEPTED]と返信して計画を承認
    • フィードバックを提供して計画を編集(例:[EDIT PLAN] 技術実装に関するステップをさらに追加する
    • システムはフィードバックを統合し、修正された計画を生成
  3. 自動承認:レビュープロセスをスキップするために自動承認を有効にできます:

    • API経由リクエストでauto_accepted_plan: trueを設定
  4. API統合APIを使用する場合、feedbackパラメータでフィードバックを提供できます:

    {
      "messages": [{"role": "user", "content": "量子コンピューティングとは何ですか?"}],
      "thread_id": "my_thread_id",
      "auto_accepted_plan": false,
      "feedback": "[EDIT PLAN] 量子アルゴリズムについてもっと含める"
    }
    

コマンドライン引数

アプリケーションは動作をカスタマイズするための複数のコマンドライン引数をサポートしています:

  • query:処理する研究クエリ(複数の単語でも可)
  • --interactive:組み込み質問を使用したインタラクティブモードで実行
  • --max_plan_iterations最大計画サイクル数デフォルト1
  • --max_step_num研究計画の最大ステップ数デフォルト3
  • --debug:詳細なデバッグログを有効化

よくある質問

詳細についてはFAQ.mdを参照してください。

ライセンス

このプロジェクトはオープンソースであり、MITライセンスに従っています。

謝辞

DeerFlowはオープンソースコミュニティの素晴らしい成果の上に構築されています。DeerFlowを可能にしたすべてのプロジェクトと貢献者に深く感謝します。私たちは確かに巨人の肩の上に立っています。

以下のプロジェクトに心からの感謝を表します:

  • LangChain彼らの優れたフレームワークは、シームレスな統合と機能性を実現するLLM相互作用とチェーンに力を与えています。
  • LangGraphマルチエージェントオーケストレーションへの革新的アプローチは、DeerFlowの複雑なワークフローの実現に不可欠でした。

これらのプロジェクトはオープンソースコラボレーションの変革力を示しており、その基盤の上に構築できることを誇りに思います。

主要貢献者

DeerFlowの主要な作者に心から感謝します。彼らのビジョン、情熱、献身がこのプロジェクトを実現しました:

あなたの揺るぎない取り組みと専門知識がDeerFlowの成功を推進しています。この旅をリードしていただき光栄です。

スター履歴

Star History Chart