DeerFlow (Deep Exploration and Efficient Research Flow) est un cadre de recherche approfondie piloté par la communauté et open source, développé par ByteDance. Ce projet s'appuie sur le travail exceptionnel de la communauté open source et vise à combiner les grands modèles de langage avec des outils spécialisés, notamment la recherche sur le Web, le web scraping et l'exécution de code Python, tout en contribuant à la communauté open source.
Adresse du projet : https://github.com/bytedance/deer-flow
DeerFlow implémente une architecture de système multi-agents modulaire, spécialement conçue pour l'automatisation de la recherche et de l'analyse de code. Le système est basé sur LangGraph et permet des flux de travail flexibles basés sur l'état grâce à un système de messagerie clairement défini, où les composants communiquent entre eux.
Le système adopte un flux de travail simplifié, comprenant les composants suivants :
Ensemble d'agents spécialisés exécutant le plan :
Chaque agent a accès à des outils spécifiques optimisés pour son rôle et fonctionne dans le cadre de LangGraph.
uv
, nvm
et pnpm
# Cloner le dépôt
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# Installer les dépendances, uv gérera l'interpréteur Python et la création d'environnement virtuel, et installera les packages requis
uv sync
# Configurer les variables d'environnement
cp .env.example .env
# Configurer vos clés API :
# - Tavily : https://app.tavily.com/home
# - Brave Search : https://brave.com/search/api/
# - volcengine TTS : Ajoutez vos informations d'identification TTS si vous en avez
# Configurer le modèle LLM et les clés API
cp conf.yaml.example conf.yaml
# Installer marp pour la génération de PPT
brew install marp-cli
uv run main.py
# Tout d'abord, installez les dépendances de l'interface utilisateur Web
cd deer-flow/web
pnpm install
# Exécuter les serveurs backend et frontend (mode développement)
# macOS/Linux
./bootstrap.sh -d
# Windows
bootstrap.bat -d
Ensuite, accédez à http://localhost:3000 pour découvrir l'interface utilisateur Web.
DeerFlow prend en charge plusieurs moteurs de recherche, qui peuvent être configurés à l'aide de la variable SEARCH_API
dans le fichier .env
:
Exemple de configuration :
# Choisissez-en un : tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
DeerFlow inclut une fonctionnalité de synthèse vocale (TTS) qui vous permet de convertir des rapports de recherche en parole. Cette fonctionnalité utilise l'API volcengine TTS pour générer un son de haute qualité, prenant en charge la personnalisation de la vitesse, du volume et de la tonalité.
curl --location 'http://localhost:8000/api/tts' \
--header 'Content-Type: application/json' \
--data '{
"text": "Ceci est un test de la fonctionnalité de synthèse vocale.",
"speed_ratio": 1.0,
"volume_ratio": 1.0,
"pitch_ratio": 1.0
}' \
--output speech.mp3
# Exécuter tous les tests
make test
# Exécuter un fichier de test spécifique
pytest tests/integration/test_workflow.py
# Exécuter des tests de couverture
make coverage
# Exécuter la vérification du code
make lint
# Formater le code
make format
DeerFlow utilise LangGraph comme architecture de flux de travail. Vous pouvez utiliser LangGraph Studio pour déboguer et visualiser les flux de travail en temps réel.
# Installer le gestionnaire de packages uv (si ce n'est pas déjà fait)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Installer les dépendances et démarrer le serveur LangGraph
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --allow-blocking
Une fois le serveur démarré, vous pouvez accéder à :
# Exécuter une requête spécifique
uv run main.py "Quels sont les facteurs qui influencent l'adoption de l'IA dans les soins de santé ?"
# Exécuter avec des paramètres de planification personnalisés
uv run main.py --max_plan_iterations 3 "Comment l'informatique quantique affecte-t-elle la cryptographie ?"
# Exécuter en mode interactif
uv run main.py --interactive
# Afficher toutes les options disponibles
uv run main.py --help
DeerFlow inclut des mécanismes d'interaction homme-machine qui vous permettent d'examiner, de modifier et d'approuver les plans de recherche avant l'exécution :
[ACCEPTED]
[EDIT PLAN] Ajouter plus d'étapes sur les implémentations techniques
)Le projet contient plusieurs exemples de rapports qui présentent les fonctionnalités de DeerFlow :
DeerFlow s'appuie sur le travail exceptionnel de la communauté open source, et nous remercions particulièrement :
Ces projets témoignent du pouvoir transformateur de la collaboration open source, et nous sommes honorés de construire DeerFlow sur leurs bases.