mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-17 11:44:44 +08:00
fix: some lint fix using tools (#98)
* fix: some lint fix using tools Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: md lint Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: some lint fix using tools Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: address comments Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: tests Signed-off-by: yihong0618 <zouzou0208@gmail.com> --------- Signed-off-by: yihong0618 <zouzou0208@gmail.com> Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
11
CONTRIBUTING
11
CONTRIBUTING
@@ -17,11 +17,14 @@ There are many ways you can contribute to DeerFlow:
|
||||
|
||||
1. Fork the repository
|
||||
2. Clone your fork:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/bytedance/deer-flow.git
|
||||
cd deer-flow
|
||||
```
|
||||
|
||||
3. Set up your development environment:
|
||||
|
||||
```bash
|
||||
# Install dependencies, uv will take care of the python interpreter and venv creation
|
||||
uv sync
|
||||
@@ -30,7 +33,9 @@ There are many ways you can contribute to DeerFlow:
|
||||
uv pip install -e ".[dev]"
|
||||
uv pip install -e ".[test]"
|
||||
```
|
||||
|
||||
4. Configure pre-commit hooks:
|
||||
|
||||
```bash
|
||||
chmod +x pre-commit
|
||||
ln -s ../../pre-commit .git/hooks/pre-commit
|
||||
@@ -39,6 +44,7 @@ There are many ways you can contribute to DeerFlow:
|
||||
## Development Process
|
||||
|
||||
1. Create a new branch:
|
||||
|
||||
```bash
|
||||
git checkout -b feature/amazing-feature
|
||||
```
|
||||
@@ -50,6 +56,7 @@ There are many ways you can contribute to DeerFlow:
|
||||
- Update documentation as needed
|
||||
|
||||
3. Run tests and checks:
|
||||
|
||||
```bash
|
||||
make test # Run tests
|
||||
make lint # Run linting
|
||||
@@ -58,11 +65,13 @@ There are many ways you can contribute to DeerFlow:
|
||||
```
|
||||
|
||||
4. Commit your changes:
|
||||
|
||||
```bash
|
||||
git commit -m 'Add some amazing feature'
|
||||
```
|
||||
|
||||
5. Push to your fork:
|
||||
|
||||
```bash
|
||||
git push origin feature/amazing-feature
|
||||
```
|
||||
@@ -90,6 +99,7 @@ There are many ways you can contribute to DeerFlow:
|
||||
## Testing
|
||||
|
||||
Run the test suite:
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
make test
|
||||
@@ -122,6 +132,7 @@ make format
|
||||
## Need Help?
|
||||
|
||||
If you need help with anything:
|
||||
|
||||
- Check existing issues and discussions
|
||||
- Join our community channels
|
||||
- Ask questions in discussions
|
||||
|
||||
1
Makefile
1
Makefile
@@ -8,6 +8,7 @@ format:
|
||||
|
||||
lint:
|
||||
uv run black --check .
|
||||
uv run ruff check .
|
||||
|
||||
serve:
|
||||
uv run server.py --reload
|
||||
|
||||
@@ -21,7 +21,7 @@ Please visit [our official website](https://deerflow.tech/) for more details.
|
||||
|
||||
### Video
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
In this demo, we showcase how to use DeerFlow to:
|
||||
|
||||
@@ -152,16 +152,13 @@ Explore more details in the [`web`](./web/) directory.
|
||||
DeerFlow supports multiple search engines that can be configured in your `.env` file using the `SEARCH_API` variable:
|
||||
|
||||
- **Tavily** (default): A specialized search API for AI applications
|
||||
|
||||
- Requires `TAVILY_API_KEY` in your `.env` file
|
||||
- Sign up at: https://app.tavily.com/home
|
||||
|
||||
- **DuckDuckGo**: Privacy-focused search engine
|
||||
|
||||
- No API key required
|
||||
|
||||
- **Brave Search**: Privacy-focused search engine with advanced features
|
||||
|
||||
- Requires `BRAVE_SEARCH_API_KEY` in your `.env` file
|
||||
- Sign up at: https://brave.com/search/api/
|
||||
|
||||
@@ -202,7 +199,6 @@ DeerFlow support private knowledgebase such as ragflow and vikingdb, so that you
|
||||
### Tools and MCP Integrations
|
||||
|
||||
- 🔍 **Search and Retrieval**
|
||||
|
||||
- Web search via Tavily, Brave Search and more
|
||||
- Crawling with Jina
|
||||
- Advanced content extraction
|
||||
@@ -219,7 +215,6 @@ DeerFlow support private knowledgebase such as ragflow and vikingdb, so that you
|
||||
### Human Collaboration
|
||||
|
||||
- 🧠 **Human-in-the-loop**
|
||||
|
||||
- Supports interactive modification of research plans using natural language
|
||||
- Supports auto-acceptance of research plans
|
||||
|
||||
@@ -527,6 +522,7 @@ DeerFlow includes a human in the loop mechanism that allows you to review, edit,
|
||||
- Via API: Set `auto_accepted_plan: true` in your request
|
||||
|
||||
4. **API Integration**: When using the API, you can provide feedback through the `feedback` parameter:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{ "role": "user", "content": "What is quantum computing?" }],
|
||||
|
||||
75
README_de.md
75
README_de.md
@@ -19,9 +19,10 @@ Besuchen Sie [unsere offizielle Website](https://deerflow.tech/) für weitere De
|
||||
|
||||
### Video
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
In dieser Demo zeigen wir, wie man DeerFlow nutzt, um:
|
||||
|
||||
- Nahtlos mit MCP-Diensten zu integrieren
|
||||
- Den Prozess der tiefgehenden Recherche durchzuführen und einen umfassenden Bericht mit Bildern zu erstellen
|
||||
- Podcast-Audio basierend auf dem generierten Bericht zu erstellen
|
||||
@@ -36,7 +37,6 @@ In dieser Demo zeigen wir, wie man DeerFlow nutzt, um:
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 📑 Inhaltsverzeichnis
|
||||
|
||||
- [🚀 Schnellstart](#schnellstart)
|
||||
@@ -50,12 +50,12 @@ In dieser Demo zeigen wir, wie man DeerFlow nutzt, um:
|
||||
- [💖 Danksagungen](#danksagungen)
|
||||
- [⭐ Star-Verlauf](#star-verlauf)
|
||||
|
||||
|
||||
## Schnellstart
|
||||
|
||||
DeerFlow ist in Python entwickelt und kommt mit einer in Node.js geschriebenen Web-UI. Um einen reibungslosen Einrichtungsprozess zu gewährleisten, empfehlen wir die Verwendung der folgenden Tools:
|
||||
|
||||
### Empfohlene Tools
|
||||
|
||||
- **[`uv`](https://docs.astral.sh/uv/getting-started/installation/):**
|
||||
Vereinfacht die Verwaltung von Python-Umgebungen und Abhängigkeiten. `uv` erstellt automatisch eine virtuelle Umgebung im Stammverzeichnis und installiert alle erforderlichen Pakete für Sie—keine manuelle Installation von Python-Umgebungen notwendig.
|
||||
|
||||
@@ -66,11 +66,14 @@ DeerFlow ist in Python entwickelt und kommt mit einer in Node.js geschriebenen W
|
||||
Installieren und verwalten Sie Abhängigkeiten des Node.js-Projekts.
|
||||
|
||||
### Umgebungsanforderungen
|
||||
|
||||
Stellen Sie sicher, dass Ihr System die folgenden Mindestanforderungen erfüllt:
|
||||
|
||||
- **[Python](https://www.python.org/downloads/):** Version `3.12+`
|
||||
- **[Node.js](https://nodejs.org/en/download/):** Version `22+`
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Repository klonen
|
||||
git clone https://github.com/bytedance/deer-flow.git
|
||||
@@ -138,25 +141,24 @@ bootstrap.bat -d
|
||||
|
||||
Weitere Details finden Sie im Verzeichnis [`web`](./web/).
|
||||
|
||||
|
||||
## Unterstützte Suchmaschinen
|
||||
|
||||
DeerFlow unterstützt mehrere Suchmaschinen, die in Ihrer `.env`-Datei über die Variable `SEARCH_API` konfiguriert werden können:
|
||||
|
||||
- **Tavily** (Standard): Eine spezialisierte Such-API für KI-Anwendungen
|
||||
- Erfordert `TAVILY_API_KEY` in Ihrer `.env`-Datei
|
||||
- Registrieren Sie sich unter: https://app.tavily.com/home
|
||||
- Erfordert `TAVILY_API_KEY` in Ihrer `.env`-Datei
|
||||
- Registrieren Sie sich unter: <https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**: Datenschutzorientierte Suchmaschine
|
||||
- Kein API-Schlüssel erforderlich
|
||||
- Kein API-Schlüssel erforderlich
|
||||
|
||||
- **Brave Search**: Datenschutzorientierte Suchmaschine mit erweiterten Funktionen
|
||||
- Erfordert `BRAVE_SEARCH_API_KEY` in Ihrer `.env`-Datei
|
||||
- Registrieren Sie sich unter: https://brave.com/search/api/
|
||||
- Erfordert `BRAVE_SEARCH_API_KEY` in Ihrer `.env`-Datei
|
||||
- Registrieren Sie sich unter: <https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**: Wissenschaftliche Papiersuche für akademische Forschung
|
||||
- Kein API-Schlüssel erforderlich
|
||||
- Spezialisiert auf wissenschaftliche und akademische Papiere
|
||||
- Kein API-Schlüssel erforderlich
|
||||
- Spezialisiert auf wissenschaftliche und akademische Papiere
|
||||
|
||||
Um Ihre bevorzugte Suchmaschine zu konfigurieren, setzen Sie die Variable `SEARCH_API` in Ihrer `.env`-Datei:
|
||||
|
||||
@@ -170,40 +172,39 @@ SEARCH_API=tavily
|
||||
### Kernfähigkeiten
|
||||
|
||||
- 🤖 **LLM-Integration**
|
||||
- Unterstützt die Integration der meisten Modelle über [litellm](https://docs.litellm.ai/docs/providers).
|
||||
- Unterstützung für Open-Source-Modelle wie Qwen
|
||||
- OpenAI-kompatible API-Schnittstelle
|
||||
- Mehrstufiges LLM-System für unterschiedliche Aufgabenkomplexitäten
|
||||
- Unterstützt die Integration der meisten Modelle über [litellm](https://docs.litellm.ai/docs/providers).
|
||||
- Unterstützung für Open-Source-Modelle wie Qwen
|
||||
- OpenAI-kompatible API-Schnittstelle
|
||||
- Mehrstufiges LLM-System für unterschiedliche Aufgabenkomplexitäten
|
||||
|
||||
### Tools und MCP-Integrationen
|
||||
|
||||
- 🔍 **Suche und Abruf**
|
||||
- Websuche über Tavily, Brave Search und mehr
|
||||
- Crawling mit Jina
|
||||
- Fortgeschrittene Inhaltsextraktion
|
||||
- Websuche über Tavily, Brave Search und mehr
|
||||
- Crawling mit Jina
|
||||
- Fortgeschrittene Inhaltsextraktion
|
||||
|
||||
- 🔗 **MCP Nahtlose Integration**
|
||||
- Erweiterte Fähigkeiten für privaten Domänenzugriff, Wissensgraphen, Webbrowsing und mehr
|
||||
- Erleichtert die Integration verschiedener Forschungswerkzeuge und -methoden
|
||||
- Erweiterte Fähigkeiten für privaten Domänenzugriff, Wissensgraphen, Webbrowsing und mehr
|
||||
- Erleichtert die Integration verschiedener Forschungswerkzeuge und -methoden
|
||||
|
||||
### Menschliche Zusammenarbeit
|
||||
|
||||
- 🧠 **Mensch-in-der-Schleife**
|
||||
- Unterstützt interaktive Modifikation von Forschungsplänen mit natürlicher Sprache
|
||||
- Unterstützt automatische Akzeptanz von Forschungsplänen
|
||||
- Unterstützt interaktive Modifikation von Forschungsplänen mit natürlicher Sprache
|
||||
- Unterstützt automatische Akzeptanz von Forschungsplänen
|
||||
|
||||
- 📝 **Bericht-Nachbearbeitung**
|
||||
- Unterstützt Notion-ähnliche Blockbearbeitung
|
||||
- Ermöglicht KI-Verfeinerungen, einschließlich KI-unterstützter Polierung, Satzkürzung und -erweiterung
|
||||
- Angetrieben von [tiptap](https://tiptap.dev/)
|
||||
- Unterstützt Notion-ähnliche Blockbearbeitung
|
||||
- Ermöglicht KI-Verfeinerungen, einschließlich KI-unterstützter Polierung, Satzkürzung und -erweiterung
|
||||
- Angetrieben von [tiptap](https://tiptap.dev/)
|
||||
|
||||
### Inhaltserstellung
|
||||
|
||||
- 🎙️ **Podcast- und Präsentationserstellung**
|
||||
- KI-gestützte Podcast-Skripterstellung und Audiosynthese
|
||||
- Automatisierte Erstellung einfacher PowerPoint-Präsentationen
|
||||
- Anpassbare Vorlagen für maßgeschneiderte Inhalte
|
||||
|
||||
- KI-gestützte Podcast-Skripterstellung und Audiosynthese
|
||||
- Automatisierte Erstellung einfacher PowerPoint-Präsentationen
|
||||
- Anpassbare Vorlagen für maßgeschneiderte Inhalte
|
||||
|
||||
## Architektur
|
||||
|
||||
@@ -255,7 +256,6 @@ curl --location 'http://localhost:8000/api/tts' \
|
||||
--output speech.mp3
|
||||
```
|
||||
|
||||
|
||||
## Entwicklung
|
||||
|
||||
### Testen
|
||||
@@ -313,9 +313,10 @@ langgraph dev
|
||||
```
|
||||
|
||||
Nach dem Start des LangGraph-Servers sehen Sie mehrere URLs im Terminal:
|
||||
- API: http://127.0.0.1:2024
|
||||
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- API-Dokumentation: http://127.0.0.1:2024/docs
|
||||
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- API-Dokumentation: <http://127.0.0.1:2024/docs>
|
||||
|
||||
Öffnen Sie den Studio UI-Link in Ihrem Browser, um auf die Debugging-Schnittstelle zuzugreifen.
|
||||
|
||||
@@ -330,6 +331,7 @@ In der Studio UI können Sie:
|
||||
5. Feedback während der Planungsphase geben, um Forschungspläne zu verfeinern
|
||||
|
||||
Wenn Sie ein Forschungsthema in der Studio UI einreichen, können Sie die gesamte Workflow-Ausführung sehen, einschließlich:
|
||||
|
||||
- Die Planungsphase, in der der Forschungsplan erstellt wird
|
||||
- Die Feedback-Schleife, in der Sie den Plan ändern können
|
||||
- Die Forschungs- und Schreibphasen für jeden Abschnitt
|
||||
@@ -340,6 +342,7 @@ Wenn Sie ein Forschungsthema in der Studio UI einreichen, können Sie die gesamt
|
||||
DeerFlow unterstützt LangSmith-Tracing, um Ihnen beim Debuggen und Überwachen Ihrer Workflows zu helfen. Um LangSmith-Tracing zu aktivieren:
|
||||
|
||||
1. Stellen Sie sicher, dass Ihre `.env`-Datei die folgenden Konfigurationen enthält (siehe `.env.example`):
|
||||
|
||||
```bash
|
||||
LANGSMITH_TRACING=true
|
||||
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
|
||||
@@ -348,6 +351,7 @@ DeerFlow unterstützt LangSmith-Tracing, um Ihnen beim Debuggen und Überwachen
|
||||
```
|
||||
|
||||
2. Starten Sie das Tracing mit LangSmith lokal, indem Sie folgenden Befehl ausführen:
|
||||
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
@@ -421,6 +425,7 @@ uv run main.py --help
|
||||
Die Anwendung unterstützt jetzt einen interaktiven Modus mit eingebauten Fragen in Englisch und Chinesisch:
|
||||
|
||||
1. Starten Sie den interaktiven Modus:
|
||||
|
||||
```bash
|
||||
uv run main.py --interactive
|
||||
```
|
||||
@@ -446,6 +451,7 @@ DeerFlow enthält einen Mensch-in-der-Schleife-Mechanismus, der es Ihnen ermögl
|
||||
- Über API: Setzen Sie `auto_accepted_plan: true` in Ihrer Anfrage
|
||||
|
||||
4. **API-Integration**: Bei Verwendung der API können Sie Feedback über den Parameter `feedback` geben:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{"role": "user", "content": "Was ist Quantencomputing?"}],
|
||||
@@ -485,6 +491,7 @@ Wir möchten unsere aufrichtige Wertschätzung den folgenden Projekten für ihre
|
||||
Diese Projekte veranschaulichen die transformative Kraft der Open-Source-Zusammenarbeit, und wir sind stolz darauf, auf ihren Grundlagen aufzubauen.
|
||||
|
||||
### Hauptmitwirkende
|
||||
|
||||
Ein herzliches Dankeschön geht an die Hauptautoren von `DeerFlow`, deren Vision, Leidenschaft und Engagement dieses Projekt zum Leben erweckt haben:
|
||||
|
||||
- **[Daniel Walnut](https://github.com/hetaoBackend/)**
|
||||
@@ -494,4 +501,4 @@ Ihr unerschütterliches Engagement und Fachwissen waren die treibende Kraft hint
|
||||
|
||||
## Star-Verlauf
|
||||
|
||||
[](https://star-history.com/#bytedance/deer-flow&Date)
|
||||
[](https://star-history.com/#bytedance/deer-flow&Date)
|
||||
|
||||
17
README_es.md
17
README_es.md
@@ -19,7 +19,7 @@ Por favor, visita [nuestra página web oficial](https://deerflow.tech/) para má
|
||||
|
||||
### Video
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
En esta demostración, mostramos cómo usar DeerFlow para:
|
||||
|
||||
@@ -150,7 +150,7 @@ DeerFlow soporta múltiples motores de búsqueda que pueden configurarse en tu a
|
||||
- **Tavily** (predeterminado): Una API de búsqueda especializada para aplicaciones de IA
|
||||
|
||||
- Requiere `TAVILY_API_KEY` en tu archivo `.env`
|
||||
- Regístrate en: https://app.tavily.com/home
|
||||
- Regístrate en: <https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**: Motor de búsqueda centrado en la privacidad
|
||||
|
||||
@@ -159,7 +159,7 @@ DeerFlow soporta múltiples motores de búsqueda que pueden configurarse en tu a
|
||||
- **Brave Search**: Motor de búsqueda centrado en la privacidad con características avanzadas
|
||||
|
||||
- Requiere `BRAVE_SEARCH_API_KEY` en tu archivo `.env`
|
||||
- Regístrate en: https://brave.com/search/api/
|
||||
- Regístrate en: <https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**: Búsqueda de artículos científicos para investigación académica
|
||||
- No requiere clave API
|
||||
@@ -325,9 +325,9 @@ langgraph dev
|
||||
|
||||
Después de iniciar el servidor LangGraph, verás varias URLs en la terminal:
|
||||
|
||||
- API: http://127.0.0.1:2024
|
||||
- UI de Studio: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- Docs de API: http://127.0.0.1:2024/docs
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- UI de Studio: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- Docs de API: <http://127.0.0.1:2024/docs>
|
||||
|
||||
Abre el enlace de UI de Studio en tu navegador para acceder a la interfaz de depuración.
|
||||
|
||||
@@ -353,6 +353,7 @@ Cuando envías un tema de investigación en la UI de Studio, podrás ver toda la
|
||||
DeerFlow soporta el rastreo de LangSmith para ayudarte a depurar y monitorear tus flujos de trabajo. Para habilitar el rastreo de LangSmith:
|
||||
|
||||
1. Asegúrate de que tu archivo `.env` tenga las siguientes configuraciones (ver `.env.example`):
|
||||
|
||||
```bash
|
||||
LANGSMITH_TRACING=true
|
||||
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
|
||||
@@ -361,6 +362,7 @@ DeerFlow soporta el rastreo de LangSmith para ayudarte a depurar y monitorear tu
|
||||
```
|
||||
|
||||
2. Inicia el rastreo y visualiza el grafo localmente con LangSmith ejecutando:
|
||||
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
@@ -504,6 +506,7 @@ DeerFlow incluye un mecanismo de humano en el bucle que te permite revisar, edit
|
||||
- Vía API: Establece `auto_accepted_plan: true` en tu solicitud
|
||||
|
||||
4. **Integración API**: Cuando uses la API, puedes proporcionar retroalimentación a través del parámetro `feedback`:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{ "role": "user", "content": "¿Qué es la computación cuántica?" }],
|
||||
@@ -553,4 +556,4 @@ Su compromiso inquebrantable y experiencia han sido la fuerza impulsora detrás
|
||||
|
||||
## Historial de Estrellas
|
||||
|
||||
[](https://star-history.com/#bytedance/deer-flow&Date)
|
||||
[](https://star-history.com/#bytedance/deer-flow&Date)
|
||||
|
||||
83
README_ja.md
83
README_ja.md
@@ -17,11 +17,11 @@
|
||||
|
||||
### ビデオ
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
このデモでは、DeerFlow の使用方法を紹介しています:
|
||||
このデモでは、DeerFlowの使用方法を紹介しています:
|
||||
|
||||
- MCP サービスとのシームレスな統合
|
||||
- MCPサービスとのシームレスな統合
|
||||
- 深層研究プロセスの実施と画像を含む包括的なレポートの作成
|
||||
- 生成されたレポートに基づくポッドキャストオーディオの作成
|
||||
|
||||
@@ -145,21 +145,18 @@ bootstrap.bat -d
|
||||
DeerFlow は複数の検索エンジンをサポートしており、`.env`ファイルの`SEARCH_API`変数で設定できます:
|
||||
|
||||
- **Tavily**(デフォルト):AI アプリケーション向けの専門検索 API
|
||||
|
||||
- `.env`ファイルに`TAVILY_API_KEY`が必要
|
||||
- 登録先:https://app.tavily.com/home
|
||||
- 登録先:<https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**:プライバシー重視の検索エンジン
|
||||
|
||||
- API キー不要
|
||||
- APIキー不要
|
||||
|
||||
- **Brave Search**:高度な機能を備えたプライバシー重視の検索エンジン
|
||||
|
||||
- `.env`ファイルに`BRAVE_SEARCH_API_KEY`が必要
|
||||
- 登録先:https://brave.com/search/api/
|
||||
- 登録先:<https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**:学術研究用の科学論文検索
|
||||
- API キー不要
|
||||
- APIキー不要
|
||||
- 科学・学術論文専用
|
||||
|
||||
お好みの検索エンジンを設定するには、`.env`ファイルで`SEARCH_API`変数を設定します:
|
||||
@@ -173,41 +170,39 @@ SEARCH_API=tavily
|
||||
|
||||
### コア機能
|
||||
|
||||
- 🤖 **LLM 統合**
|
||||
- 🤖 **LLM統合**
|
||||
- [litellm](https://docs.litellm.ai/docs/providers)を通じてほとんどのモデルの統合をサポート
|
||||
- Qwen などのオープンソースモデルをサポート
|
||||
- OpenAI 互換の API インターフェース
|
||||
- 異なるタスクの複雑さに対応するマルチティア LLM システム
|
||||
- Qwenなどのオープンソースモデルをサポート
|
||||
- OpenAI互換のAPIインターフェース
|
||||
- 異なるタスクの複雑さに対応するマルチティアLLMシステム
|
||||
|
||||
### ツールと MCP 統合
|
||||
|
||||
- 🔍 **検索と取得**
|
||||
|
||||
- Tavily、Brave Search などを通じた Web 検索
|
||||
- Jina を使用したクローリング
|
||||
- Tavily、Brave Searchなどを通じたWeb検索
|
||||
- Jinaを使用したクローリング
|
||||
- 高度なコンテンツ抽出
|
||||
|
||||
- 🔗 **MCP シームレス統合**
|
||||
- プライベートドメインアクセス、ナレッジグラフ、Web ブラウジングなどの機能を拡張
|
||||
- 🔗 **MCPシームレス統合**
|
||||
- プライベートドメインアクセス、ナレッジグラフ、Webブラウジングなどの機能を拡張
|
||||
- 多様な研究ツールと方法論の統合を促進
|
||||
|
||||
### 人間との協力
|
||||
|
||||
- 🧠 **人間参加型ループ**
|
||||
|
||||
- 自然言語を使用した研究計画の対話的修正をサポート
|
||||
- 研究計画の自動承認をサポート
|
||||
|
||||
- 📝 **レポート後編集**
|
||||
- Notion ライクなブロック編集をサポート
|
||||
- AI 支援による洗練、文の短縮、拡張などの AI 改良を可能に
|
||||
- Notionライクなブロック編集をサポート
|
||||
- AI支援による洗練、文の短縮、拡張などのAI改良を可能に
|
||||
- [tiptap](https://tiptap.dev/)を活用
|
||||
|
||||
### コンテンツ作成
|
||||
|
||||
- 🎙️ **ポッドキャストとプレゼンテーション生成**
|
||||
- AI 駆動のポッドキャストスクリプト生成と音声合成
|
||||
- シンプルな PowerPoint プレゼンテーションの自動作成
|
||||
- AI駆動のポッドキャストスクリプト生成と音声合成
|
||||
- シンプルなPowerPointプレゼンテーションの自動作成
|
||||
- カスタマイズ可能なテンプレートで個別のコンテンツに対応
|
||||
|
||||
## アーキテクチャ
|
||||
@@ -243,6 +238,27 @@ DeerFlow は、自動研究とコード分析のためのモジュラーなマ
|
||||
- 収集した情報を処理および構造化
|
||||
- 包括的な研究レポートを生成
|
||||
|
||||
## テキスト読み上げ統合
|
||||
|
||||
DeerFlowには現在、研究レポートを音声に変換できるテキスト読み上げ(TTS)機能が含まれています。この機能は火山引擎TTS APIを使用して高品質なテキストオーディオを生成します。速度、音量、ピッチなどの特性もカスタマイズ可能です。
|
||||
|
||||
### TTS APIの使用
|
||||
|
||||
`/api/tts`エンドポイントからTTS機能にアクセスできます:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
|
||||
## 開発
|
||||
|
||||
### テスト
|
||||
@@ -299,11 +315,15 @@ pip install -U "langgraph-cli[inmem]"
|
||||
langgraph dev
|
||||
```
|
||||
|
||||
LangGraph サーバーを開始すると、端末にいくつかの URL が表示されます:
|
||||
LangGraphサーバーを開始すると、端末にいくつかのURLが表示されます:
|
||||
|
||||
- API: http://127.0.0.1:2024
|
||||
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- API ドキュメント: http://127.0.0.1:2024/docs
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- APIドキュメント: <http://127.0.0.1:2024/docs>
|
||||
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- APIドキュメント: <http://127.0.0.1:2024/docs>
|
||||
|
||||
ブラウザで Studio UI リンクを開いてデバッグインターフェースにアクセスします。
|
||||
|
||||
@@ -317,7 +337,7 @@ Studio UI では、次のことができます:
|
||||
4. 各コンポーネントの入力と出力を検査して問題をデバッグ
|
||||
5. 計画段階でフィードバックを提供して研究計画を洗練
|
||||
|
||||
Studio UI で研究トピックを送信すると、次を含む全ワークフロー実行プロセスを見ることができます:
|
||||
Studio UIで研究トピックを送信すると、次を含む全ワークフロー実行プロセスを見ることができます:
|
||||
|
||||
- 研究計画を作成する計画段階
|
||||
- 計画を修正できるフィードバックループ
|
||||
@@ -329,6 +349,7 @@ Studio UI で研究トピックを送信すると、次を含む全ワークフ
|
||||
DeerFlow は LangSmith トレース機能をサポートしており、ワークフローのデバッグとモニタリングに役立ちます。LangSmith トレースを有効にするには:
|
||||
|
||||
1. `.env` ファイルに次の設定があることを確認してください(`.env.example` を参照):
|
||||
|
||||
```bash
|
||||
LANGSMITH_TRACING=true
|
||||
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
|
||||
@@ -337,6 +358,7 @@ DeerFlow は LangSmith トレース機能をサポートしており、ワーク
|
||||
```
|
||||
|
||||
2. 次のコマンドを実行して LangSmith トレースを開始します:
|
||||
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
@@ -498,9 +520,8 @@ DeerFlow には人間参加型ループメカニズムが含まれており、
|
||||
|
||||
3. **自動承認**:レビュープロセスをスキップするために自動承認を有効にできます:
|
||||
|
||||
- API 経由:リクエストで`auto_accepted_plan: true`を設定
|
||||
4. **API統合**:APIを使用する場合、`feedback`パラメータでフィードバックを提供できます:
|
||||
|
||||
4. **API 統合**:API を使用する場合、`feedback`パラメータでフィードバックを提供できます:
|
||||
```json
|
||||
{
|
||||
"messages": [
|
||||
|
||||
20
README_pt.md
20
README_pt.md
@@ -20,7 +20,7 @@ Por favor, visite [Nosso Site Oficial](https://deerflow.tech/) para maiores deta
|
||||
|
||||
### Video
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
Nesse demo, nós demonstramos como usar o DeerFlow para:
|
||||
In this demo, we showcase how to use DeerFlow to:
|
||||
@@ -148,13 +148,12 @@ Explore mais detalhes no diretório [`web`](./web/) .
|
||||
|
||||
## Mecanismos de Busca Suportados
|
||||
|
||||
|
||||
DeerFlow suporta múltiplos mecanismos de busca que podem ser configurados no seu arquivo `.env` usando a variável `SEARCH_API`:
|
||||
|
||||
- **Tavily** (padrão): Uma API de busca especializada para aplicações de IA
|
||||
|
||||
- Requer `TAVILY_API_KEY` no seu arquivo `.env`
|
||||
- Inscreva-se em: https://app.tavily.com/home
|
||||
- Inscreva-se em: <https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**: Mecanismo de busca focado em privacidade
|
||||
|
||||
@@ -163,7 +162,7 @@ DeerFlow suporta múltiplos mecanismos de busca que podem ser configurados no se
|
||||
- **Brave Search**: Mecanismo de busca focado em privacidade com funcionalidades avançadas
|
||||
|
||||
- Requer `BRAVE_SEARCH_API_KEY` no seu arquivo `.env`
|
||||
- Inscreva-se em: https://brave.com/search/api/
|
||||
- Inscreva-se em: <https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**: Busca de artigos científicos para pesquisa acadêmica
|
||||
- Não requer chave API
|
||||
@@ -204,7 +203,6 @@ SEARCH_API=tavily
|
||||
|
||||
- 🧠 **Humano-no-processo**
|
||||
|
||||
|
||||
- Suporta modificação interativa de planos de pesquisa usando linguagem natural
|
||||
- Suporta auto-aceite de planos de pesquisa
|
||||
|
||||
@@ -333,9 +331,9 @@ langgraph dev
|
||||
|
||||
Após iniciar o servidor LangGraph, você verá diversas URLs no seu terminal:
|
||||
|
||||
- API: http://127.0.0.1:2024
|
||||
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- API Docs: http://127.0.0.1:2024/docs
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- API Docs: <http://127.0.0.1:2024/docs>
|
||||
|
||||
Abra o link do Studio UI no seu navegador para acessar a interface de depuração.
|
||||
|
||||
@@ -343,7 +341,6 @@ Abra o link do Studio UI no seu navegador para acessar a interface de depuraçã
|
||||
|
||||
No Studio UI, você pode:
|
||||
|
||||
|
||||
1. Visualizar o grafo do fluxo de trabalho e como seus componentes se conectam
|
||||
2. Rastrear a execução em tempo-real e ver como os dados fluem através do sistema
|
||||
3. Inspecionar o estado de cada passo do fluxo de trabalho
|
||||
@@ -391,7 +388,7 @@ docker compose build
|
||||
docker compose up
|
||||
```
|
||||
|
||||
## Exemplos:
|
||||
## Exemplos
|
||||
|
||||
Os seguintes exemplos demonstram as capacidades do DeerFlow:
|
||||
|
||||
@@ -494,7 +491,8 @@ DeerFlow inclue um mecanismo de humano no processo que permite a você revisar,
|
||||
|
||||
- Via API: Defina `auto_accepted_plan: true` na sua requisição
|
||||
|
||||
4. **Integração de API**: Quanto usar a API, você pode fornecer um feedback através do parâmetro `feedback`:
|
||||
4. **Integração de API**: Quanto usar a API, você pode fornecer um feedback através do parâmetro `feedback`:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{ "role": "user", "content": "O que é computação quântica?" }],
|
||||
|
||||
15
README_ru.md
15
README_ru.md
@@ -19,7 +19,7 @@
|
||||
|
||||
### Видео
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
В этой демонстрации мы показываем, как использовать DeerFlow для:
|
||||
|
||||
@@ -150,7 +150,7 @@ DeerFlow поддерживает несколько поисковых сист
|
||||
- **Tavily** (по умолчанию): Специализированный поисковый API для приложений ИИ
|
||||
|
||||
- Требуется `TAVILY_API_KEY` в вашем файле `.env`
|
||||
- Зарегистрируйтесь на: https://app.tavily.com/home
|
||||
- Зарегистрируйтесь на: <https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**: Поисковая система, ориентированная на конфиденциальность
|
||||
|
||||
@@ -159,7 +159,7 @@ DeerFlow поддерживает несколько поисковых сист
|
||||
- **Brave Search**: Поисковая система, ориентированная на конфиденциальность, с расширенными функциями
|
||||
|
||||
- Требуется `BRAVE_SEARCH_API_KEY` в вашем файле `.env`
|
||||
- Зарегистрируйтесь на: https://brave.com/search/api/
|
||||
- Зарегистрируйтесь на: <https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**: Поиск научных статей для академических исследований
|
||||
- Не требуется API-ключ
|
||||
@@ -325,9 +325,9 @@ langgraph dev
|
||||
|
||||
После запуска сервера LangGraph вы увидите несколько URL в терминале:
|
||||
|
||||
- API: http://127.0.0.1:2024
|
||||
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- API Docs: http://127.0.0.1:2024/docs
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- API Docs: <http://127.0.0.1:2024/docs>
|
||||
|
||||
Откройте ссылку Studio UI в вашем браузере для доступа к интерфейсу отладки.
|
||||
|
||||
@@ -353,6 +353,7 @@ langgraph dev
|
||||
DeerFlow поддерживает трассировку LangSmith, чтобы помочь вам отладить и контролировать ваши рабочие процессы. Чтобы включить трассировку LangSmith:
|
||||
|
||||
1. Убедитесь, что в вашем файле `.env` есть следующие конфигурации (см. `.env.example`):
|
||||
|
||||
```bash
|
||||
LANGSMITH_TRACING=true
|
||||
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
|
||||
@@ -361,6 +362,7 @@ DeerFlow поддерживает трассировку LangSmith, чтобы
|
||||
```
|
||||
|
||||
2. Запустите трассировку и визуализируйте граф локально с LangSmith, выполнив:
|
||||
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
@@ -504,6 +506,7 @@ DeerFlow включает механизм "человек в контуре",
|
||||
- Через API: Установите `auto_accepted_plan: true` в вашем запросе
|
||||
|
||||
4. **Интеграция API**: При использовании API вы можете предоставить обратную связь через параметр `feedback`:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{ "role": "user", "content": "Что такое квантовые вычисления?" }],
|
||||
|
||||
63
README_zh.md
63
README_zh.md
@@ -17,7 +17,7 @@
|
||||
|
||||
### 视频
|
||||
|
||||
https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
<https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e>
|
||||
|
||||
在此演示中,我们展示了如何使用 DeerFlow:
|
||||
|
||||
@@ -46,7 +46,7 @@ https://github.com/user-attachments/assets/f3786598-1f2a-4d07-919e-8b99dfa1de3e
|
||||
- [❓ 常见问题](#常见问题)
|
||||
- [📜 许可证](#许可证)
|
||||
- [💖 致谢](#致谢)
|
||||
- [⭐ Star History](#star-History)
|
||||
- [⭐ Star History](#star-history)
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -108,7 +108,7 @@ pnpm install
|
||||
|
||||
请参阅[配置指南](docs/configuration_guide.md)获取更多详情。
|
||||
|
||||
> [!注意]
|
||||
> [! 注意]
|
||||
> 在启动项目之前,请仔细阅读指南,并更新配置以匹配您的特定设置和要求。
|
||||
|
||||
### 控制台 UI
|
||||
@@ -123,8 +123,7 @@ uv run main.py
|
||||
### Web UI
|
||||
|
||||
本项目还包括一个 Web UI,提供更加动态和引人入胜的交互体验。
|
||||
|
||||
> [!注意]
|
||||
> [! 注意]
|
||||
> 您需要先安装 Web UI 的依赖。
|
||||
|
||||
```bash
|
||||
@@ -147,18 +146,15 @@ bootstrap.bat -d
|
||||
DeerFlow 支持多种搜索引擎,可以在`.env`文件中通过`SEARCH_API`变量进行配置:
|
||||
|
||||
- **Tavily**(默认):专为 AI 应用设计的专业搜索 API
|
||||
|
||||
- 需要在`.env`文件中设置`TAVILY_API_KEY`
|
||||
- 注册地址:https://app.tavily.com/home
|
||||
- 注册地址:<https://app.tavily.com/home>
|
||||
|
||||
- **DuckDuckGo**:注重隐私的搜索引擎
|
||||
|
||||
- 无需 API 密钥
|
||||
|
||||
- **Brave Search**:具有高级功能的注重隐私的搜索引擎
|
||||
|
||||
- 需要在`.env`文件中设置`BRAVE_SEARCH_API_KEY`
|
||||
- 注册地址:https://brave.com/search/api/
|
||||
- 注册地址:<https://brave.com/search/api/>
|
||||
|
||||
- **Arxiv**:用于学术研究的科学论文搜索
|
||||
- 无需 API 密钥
|
||||
@@ -224,7 +220,6 @@ DeerFlow 支持基于私有域知识的检索,您可以将文档上传到多
|
||||
### 人机协作
|
||||
|
||||
- 🧠 **人在环中**
|
||||
|
||||
- 支持使用自然语言交互式修改研究计划
|
||||
- 支持自动接受研究计划
|
||||
|
||||
@@ -263,16 +258,36 @@ DeerFlow 实现了一个模块化的多智能体系统架构,专为自动化
|
||||
- 管理研究流程并决定何时生成最终报告
|
||||
|
||||
3. **研究团队**:执行计划的专业智能体集合:
|
||||
|
||||
- **研究员**:使用网络搜索引擎、爬虫甚至 MCP 服务等工具进行网络搜索和信息收集。
|
||||
- **编码员**:使用 Python REPL 工具处理代码分析、执行和技术任务。
|
||||
每个智能体都可以访问针对其角色优化的特定工具,并在 LangGraph 框架内运行
|
||||
每个智能体都可以访问针对其角色优化的特定工具,并在 LangGraph 框架内运行
|
||||
|
||||
4. **报告员**:研究输出的最终阶段处理器
|
||||
- 汇总研究团队的发现
|
||||
- 处理和组织收集的信息
|
||||
- 生成全面的研究报告
|
||||
|
||||
## 文本转语音集成
|
||||
|
||||
DeerFlow 现在包含一个文本转语音 (TTS) 功能,允许您将研究报告转换为语音。此功能使用火山引擎 TTS API 生成高质量的文本音频。速度、音量和音调等特性也可以自定义。
|
||||
|
||||
### 使用 TTS API
|
||||
|
||||
您可以通过`/api/tts`端点访问 TTS 功能:
|
||||
|
||||
```bash
|
||||
# 使用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
|
||||
```
|
||||
|
||||
## 开发
|
||||
|
||||
### 测试
|
||||
@@ -331,9 +346,9 @@ langgraph dev
|
||||
|
||||
启动 LangGraph 服务器后,您将在终端中看到几个 URL:
|
||||
|
||||
- API: http://127.0.0.1:2024
|
||||
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
|
||||
- API 文档: http://127.0.0.1:2024/docs
|
||||
- API: <http://127.0.0.1:2024>
|
||||
- Studio UI: <https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024>
|
||||
- API 文档:<http://127.0.0.1:2024/docs>
|
||||
|
||||
在浏览器中打开 Studio UI 链接以访问调试界面。
|
||||
|
||||
@@ -359,6 +374,7 @@ langgraph dev
|
||||
DeerFlow 支持 LangSmith 追踪功能,帮助您调试和监控工作流。要启用 LangSmith 追踪:
|
||||
|
||||
1. 确保您的 `.env` 文件中有以下配置(参见 `.env.example`):
|
||||
|
||||
```bash
|
||||
LANGSMITH_TRACING=true
|
||||
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
|
||||
@@ -367,6 +383,7 @@ DeerFlow 支持 LangSmith 追踪功能,帮助您调试和监控工作流。要
|
||||
```
|
||||
|
||||
2. 通过运行以下命令本地启动 LangSmith 追踪:
|
||||
|
||||
```bash
|
||||
langgraph dev
|
||||
```
|
||||
@@ -409,7 +426,7 @@ docker compose up
|
||||
|
||||
## 文本转语音集成
|
||||
|
||||
DeerFlow 现在包含一个文本转语音(TTS)功能,允许您将研究报告转换为语音。此功能使用火山引擎 TTS API 生成高质量的文本音频。速度、音量和音调等特性也可以自定义。
|
||||
DeerFlow 现在包含一个文本转语音 (TTS) 功能,允许您将研究报告转换为语音。此功能使用火山引擎 TTS API 生成高质量的文本音频。速度、音量和音调等特性也可以自定义。
|
||||
|
||||
### 使用 TTS API
|
||||
|
||||
@@ -435,17 +452,14 @@ curl --location 'http://localhost:8000/api/tts' \
|
||||
### 研究报告
|
||||
|
||||
1. **OpenAI Sora 报告** - OpenAI 的 Sora AI 工具分析
|
||||
|
||||
- 讨论功能、访问方式、提示工程、限制和伦理考虑
|
||||
- [查看完整报告](examples/openai_sora_report.md)
|
||||
|
||||
2. **Google 的 Agent to Agent 协议报告** - Google 的 Agent to Agent (A2A)协议概述
|
||||
|
||||
- 讨论其在 AI 智能体通信中的作用及其与 Anthropic 的 Model Context Protocol (MCP)的关系
|
||||
2. **Google 的 Agent to Agent 协议报告** - Google 的 Agent to Agent (A2A) 协议概述
|
||||
- 讨论其在 AI 智能体通信中的作用及其与 Anthropic 的 Model Context Protocol (MCP) 的关系
|
||||
- [查看完整报告](examples/what_is_agent_to_agent_protocol.md)
|
||||
|
||||
3. **什么是 MCP?** - 对"MCP"一词在多个上下文中的全面分析
|
||||
|
||||
- 探讨 AI 中的 Model Context Protocol、化学中的 Monocalcium Phosphate 和电子学中的 Micro-channel Plate
|
||||
- [查看完整报告](examples/what_is_mcp.md)
|
||||
|
||||
@@ -456,17 +470,14 @@ curl --location 'http://localhost:8000/api/tts' \
|
||||
- [查看完整报告](examples/bitcoin_price_fluctuation.md)
|
||||
|
||||
5. **什么是 LLM?** - 对大型语言模型的深入探索
|
||||
|
||||
- 讨论架构、训练、应用和伦理考虑
|
||||
- [查看完整报告](examples/what_is_llm.md)
|
||||
|
||||
6. **如何使用 Claude 进行深度研究?** - 在深度研究中使用 Claude 的最佳实践和工作流程
|
||||
|
||||
- 涵盖提示工程、数据分析和与其他工具的集成
|
||||
- [查看完整报告](examples/how_to_use_claude_deep_research.md)
|
||||
|
||||
7. **医疗保健中的 AI 采用:影响因素** - 影响医疗保健中 AI 采用的因素分析
|
||||
|
||||
- 讨论 AI 技术、数据质量、伦理考虑、经济评估、组织准备度和数字基础设施
|
||||
- [查看完整报告](examples/AI_adoption_in_healthcare.md)
|
||||
|
||||
@@ -527,10 +538,10 @@ DeerFlow 包含一个人在环中机制,允许您在执行研究计划前审
|
||||
- 系统将整合您的反馈并生成修订后的计划
|
||||
|
||||
3. **自动接受**:您可以启用自动接受以跳过审查过程:
|
||||
|
||||
- 通过 API:在请求中设置`auto_accepted_plan: true`
|
||||
|
||||
4. **API 集成**:使用 API 时,您可以通过`feedback`参数提供反馈:
|
||||
|
||||
```json
|
||||
{
|
||||
"messages": [{ "role": "user", "content": "什么是量子计算?" }],
|
||||
|
||||
@@ -38,6 +38,7 @@ dependencies = [
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"ruff",
|
||||
"black>=24.2.0",
|
||||
"langgraph-cli[inmem]>=0.2.10",
|
||||
]
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from .tools import SELECTED_SEARCH_ENGINE, SearchEngine
|
||||
from .loader import load_yaml_config
|
||||
from .questions import BUILT_IN_QUESTIONS, BUILT_IN_QUESTIONS_ZH_CN
|
||||
|
||||
from dotenv import load_dotenv
|
||||
@@ -11,7 +10,7 @@ from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
# Team configuration
|
||||
TEAM_MEMBER_CONFIGRATIONS = {
|
||||
TEAM_MEMBER_CONFIGURATIONS = {
|
||||
"researcher": {
|
||||
"name": "researcher",
|
||||
"desc": (
|
||||
@@ -36,12 +35,12 @@ TEAM_MEMBER_CONFIGRATIONS = {
|
||||
},
|
||||
}
|
||||
|
||||
TEAM_MEMBERS = list(TEAM_MEMBER_CONFIGRATIONS.keys())
|
||||
TEAM_MEMBERS = list(TEAM_MEMBER_CONFIGURATIONS.keys())
|
||||
|
||||
__all__ = [
|
||||
# Other configurations
|
||||
"TEAM_MEMBERS",
|
||||
"TEAM_MEMBER_CONFIGRATIONS",
|
||||
"TEAM_MEMBER_CONFIGURATIONS",
|
||||
"SELECTED_SEARCH_ENGINE",
|
||||
"SearchEngine",
|
||||
"BUILT_IN_QUESTIONS",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
|
||||
from langgraph.graph import MessagesState
|
||||
|
||||
from src.prompts.planner_model import Plan
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from langgraph.graph import MessagesState
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import logging
|
||||
from datetime import timedelta
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from fastapi import HTTPException
|
||||
from mcp import ClientSession, StdioServerParameters
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import os
|
||||
|
||||
from .crawl import crawl_tool
|
||||
from .python_repl import python_repl_tool
|
||||
from .retriever import get_retriever_tool
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import asyncio
|
||||
import logging
|
||||
from src.graph import build_graph
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import pytest
|
||||
from src.crawler import Crawler
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import pytest
|
||||
from src.tools.python_repl import python_repl_tool
|
||||
|
||||
|
||||
|
||||
@@ -101,8 +101,6 @@ def test_current_time_format():
|
||||
messages = apply_prompt_template("coder", test_state)
|
||||
system_content = messages[0]["content"]
|
||||
|
||||
# Time format should be like: Mon Jan 01 2024 12:34:56 +0000
|
||||
time_format = r"\w{3} \w{3} \d{2} \d{4} \d{2}:\d{2}:\d{2}"
|
||||
assert any(
|
||||
line.strip().startswith("CURRENT_TIME:") for line in system_content.split("\n")
|
||||
)
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import json
|
||||
import pytest
|
||||
from unittest.mock import patch, MagicMock
|
||||
import uuid
|
||||
import base64
|
||||
|
||||
from src.tools.tts import VolcengineTTS
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import pytest
|
||||
import sys
|
||||
import os
|
||||
from typing import Annotated, List, Optional
|
||||
from typing import Annotated
|
||||
|
||||
# Import MessagesState directly from langgraph rather than through our application
|
||||
from langgraph.graph import MessagesState
|
||||
|
||||
27
uv.lock
generated
27
uv.lock
generated
@@ -410,6 +410,7 @@ dependencies = [
|
||||
dev = [
|
||||
{ name = "black" },
|
||||
{ name = "langgraph-cli", extra = ["inmem"] },
|
||||
{ name = "ruff" },
|
||||
]
|
||||
test = [
|
||||
{ name = "pytest" },
|
||||
@@ -444,6 +445,7 @@ requires-dist = [
|
||||
{ name = "pytest-cov", marker = "extra == 'test'", specifier = ">=4.1.0" },
|
||||
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
||||
{ name = "readabilipy", specifier = ">=0.3.0" },
|
||||
{ name = "ruff", marker = "extra == 'dev'" },
|
||||
{ name = "socksio", specifier = ">=1.0.0" },
|
||||
{ name = "sse-starlette", specifier = ">=1.6.5" },
|
||||
{ name = "uvicorn", specifier = ">=0.27.1" },
|
||||
@@ -1981,6 +1983,31 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/68/15/6d22d07e063ce5e9bfbd96db9ec2fbb4693591b4503e3a76996639474d02/rpds_py-0.23.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d6f6512a90bd5cd9030a6237f5346f046c6f0e40af98657568fa45695d4de59d", size = 235415, upload-time = "2025-02-21T15:03:12.664Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruff"
|
||||
version = "0.11.10"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/e8/4c/4a3c5a97faaae6b428b336dcca81d03ad04779f8072c267ad2bd860126bf/ruff-0.11.10.tar.gz", hash = "sha256:d522fb204b4959909ecac47da02830daec102eeb100fb50ea9554818d47a5fa6", size = 4165632 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/2f/9f/596c628f8824a2ce4cd12b0f0b4c0629a62dfffc5d0f742c19a1d71be108/ruff-0.11.10-py3-none-linux_armv6l.whl", hash = "sha256:859a7bfa7bc8888abbea31ef8a2b411714e6a80f0d173c2a82f9041ed6b50f58", size = 10316243 },
|
||||
{ url = "https://files.pythonhosted.org/packages/3c/38/c1e0b77ab58b426f8c332c1d1d3432d9fc9a9ea622806e208220cb133c9e/ruff-0.11.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:968220a57e09ea5e4fd48ed1c646419961a0570727c7e069842edd018ee8afed", size = 11083636 },
|
||||
{ url = "https://files.pythonhosted.org/packages/23/41/b75e15961d6047d7fe1b13886e56e8413be8467a4e1be0a07f3b303cd65a/ruff-0.11.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1067245bad978e7aa7b22f67113ecc6eb241dca0d9b696144256c3a879663bca", size = 10441624 },
|
||||
{ url = "https://files.pythonhosted.org/packages/b6/2c/e396b6703f131406db1811ea3d746f29d91b41bbd43ad572fea30da1435d/ruff-0.11.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4854fd09c7aed5b1590e996a81aeff0c9ff51378b084eb5a0b9cd9518e6cff2", size = 10624358 },
|
||||
{ url = "https://files.pythonhosted.org/packages/bd/8c/ee6cca8bdaf0f9a3704796022851a33cd37d1340bceaf4f6e991eb164e2e/ruff-0.11.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b4564e9f99168c0f9195a0fd5fa5928004b33b377137f978055e40008a082c5", size = 10176850 },
|
||||
{ url = "https://files.pythonhosted.org/packages/e9/ce/4e27e131a434321b3b7c66512c3ee7505b446eb1c8a80777c023f7e876e6/ruff-0.11.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b6a9cc5b62c03cc1fea0044ed8576379dbaf751d5503d718c973d5418483641", size = 11759787 },
|
||||
{ url = "https://files.pythonhosted.org/packages/58/de/1e2e77fc72adc7cf5b5123fd04a59ed329651d3eab9825674a9e640b100b/ruff-0.11.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:607ecbb6f03e44c9e0a93aedacb17b4eb4f3563d00e8b474298a201622677947", size = 12430479 },
|
||||
{ url = "https://files.pythonhosted.org/packages/07/ed/af0f2340f33b70d50121628ef175523cc4c37619e98d98748c85764c8d88/ruff-0.11.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7b3a522fa389402cd2137df9ddefe848f727250535c70dafa840badffb56b7a4", size = 11919760 },
|
||||
{ url = "https://files.pythonhosted.org/packages/24/09/d7b3d3226d535cb89234390f418d10e00a157b6c4a06dfbe723e9322cb7d/ruff-0.11.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f071b0deed7e9245d5820dac235cbdd4ef99d7b12ff04c330a241ad3534319f", size = 14041747 },
|
||||
{ url = "https://files.pythonhosted.org/packages/62/b3/a63b4e91850e3f47f78795e6630ee9266cb6963de8f0191600289c2bb8f4/ruff-0.11.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a60e3a0a617eafba1f2e4186d827759d65348fa53708ca547e384db28406a0b", size = 11550657 },
|
||||
{ url = "https://files.pythonhosted.org/packages/46/63/a4f95c241d79402ccdbdb1d823d156c89fbb36ebfc4289dce092e6c0aa8f/ruff-0.11.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:da8ec977eaa4b7bf75470fb575bea2cb41a0e07c7ea9d5a0a97d13dbca697bf2", size = 10489671 },
|
||||
{ url = "https://files.pythonhosted.org/packages/6a/9b/c2238bfebf1e473495659c523d50b1685258b6345d5ab0b418ca3f010cd7/ruff-0.11.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ddf8967e08227d1bd95cc0851ef80d2ad9c7c0c5aab1eba31db49cf0a7b99523", size = 10160135 },
|
||||
{ url = "https://files.pythonhosted.org/packages/ba/ef/ba7251dd15206688dbfba7d413c0312e94df3b31b08f5d695580b755a899/ruff-0.11.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5a94acf798a82db188f6f36575d80609072b032105d114b0f98661e1679c9125", size = 11170179 },
|
||||
{ url = "https://files.pythonhosted.org/packages/73/9f/5c336717293203ba275dbfa2ea16e49b29a9fd9a0ea8b6febfc17e133577/ruff-0.11.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3afead355f1d16d95630df28d4ba17fb2cb9c8dfac8d21ced14984121f639bad", size = 11626021 },
|
||||
{ url = "https://files.pythonhosted.org/packages/d9/2b/162fa86d2639076667c9aa59196c020dc6d7023ac8f342416c2f5ec4bda0/ruff-0.11.10-py3-none-win32.whl", hash = "sha256:dc061a98d32a97211af7e7f3fa1d4ca2fcf919fb96c28f39551f35fc55bdbc19", size = 10494958 },
|
||||
{ url = "https://files.pythonhosted.org/packages/24/f3/66643d8f32f50a4b0d09a4832b7d919145ee2b944d43e604fbd7c144d175/ruff-0.11.10-py3-none-win_amd64.whl", hash = "sha256:5cc725fbb4d25b0f185cb42df07ab6b76c4489b4bfb740a175f3a59c70e8a224", size = 11650285 },
|
||||
{ url = "https://files.pythonhosted.org/packages/95/3a/2e8704d19f376c799748ff9cb041225c1d59f3e7711bc5596c8cfdc24925/ruff-0.11.10-py3-none-win_arm64.whl", hash = "sha256:ef69637b35fb8b210743926778d0e45e1bffa850a7c61e428c6b971549b5f5d1", size = 10765278 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sgmllib3k"
|
||||
version = "1.0.0"
|
||||
|
||||
Reference in New Issue
Block a user