deer-flow/README_ja.md

23 KiB
Raw Blame History

🊌 DeerFlow

Python 3.12+ License: MIT

English | 简䜓䞭文 | 日本語 | Deutsch | Español | РусскОй | Portuguese

オヌプン゜ヌスから生たれ、オヌプン゜ヌスに還元する。

DeerFlowDeep 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 プロゞェクトの䟝存関係をむンストヌルおよび管理したす。

環境芁件

システムが以䞋の最小芁件を満たしおいるこずを確認しおください

  • Python: バヌゞョン 3.12+
  • Node.js: バヌゞョン 22+

むンストヌル

# リポゞトリをクロヌン
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. レポヌタヌ研究出力の最終段階プロセッサ

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

開発

テスト

テストスむヌトの実行

# すべおのテストを実行
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 で研究トピックを送信するず、次を含む党ワヌクフロヌ実行プロセスを芋るこずができたす

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

LangSmith トレヌスの有効化

DeerFlow は LangSmith トレヌス機胜をサポヌトしおおり、ワヌクフロヌのデバッグずモニタリングに圹立ちたす。LangSmith トレヌスを有効にするには

  1. .env ファむルに次の蚭定があるこずを確認しおください.env.example を参照

    LANGSMITH_TRACING=true
    LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
    LANGSMITH_API_KEY="xxx"
    LANGSMITH_PROJECT="xxx"
    
  2. 次のコマンドを実行しお LangSmith トレヌスを開始したす

    langgraph dev
    

これにより、LangGraph Studio でトレヌス可芖化が有効になり、トレヌスがモニタリングず分析のために LangSmith に送信されたす。

Docker

このプロゞェクトは Docker でも実行できたす。

たず、以䞋の蚭定セクションを読んでください。.envず.conf.yamlファむルが準備できおいるこずを確認しおください。

次に、独自の Web サヌバヌの Docker むメヌゞをビルドしたす

docker build -t deer-flow-api .

最埌に、Web サヌバヌを実行する Docker コンテナを起動したす

# deer-flow-api-appを垌望のコンテナ名に眮き換えおください
docker run -d -t -p 8000:8000 --env-file .env --name deer-flow-api-app deer-flow-api

# サヌバヌを停止
docker stop deer-flow-api-app

Docker Compose

このプロゞェクトは docker compose でも蚭定できたす

# dockerむメヌゞをビルド
docker compose build

# サヌバヌを起動
docker compose up

テキスト読み䞊げ統合

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

䟋

以䞋の䟋は DeerFlow の機胜を瀺しおいたす

研究レポヌト

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

  2. Google の Agent to Agent プロトコルレポヌト - Google の Agent to AgentA2Aプロトコルの抂芁

  3. MCP ずは䜕か - 耇数のコンテキストにおける「MCP」ずいう甚語の包括的分析

  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