DeerFlow (تدفق الاستكشاف العميق والبحث الفعال) هو إطار عمل بحثي عميق مفتوح المصدر ومدفوع بالمجتمع من ByteDance. يعتمد هذا المشروع على العمل المتميز للمجتمع مفتوح المصدر، ويهدف إلى الجمع بين نماذج اللغة الكبيرة والأدوات المتخصصة، بما في ذلك البحث عبر الإنترنت، والزحف، وتنفيذ كود Python، مع رد الجميل للمجتمع مفتوح المصدر.
عنوان المشروع: https://github.com/bytedance/deer-flow
يطبق DeerFlow بنية نظام متعدد الوكلاء معيارية، مصممة خصيصًا لأتمتة البحث وتحليل التعليمات البرمجية. يعتمد النظام على LangGraph، ويحقق سير عمل مرن قائم على الحالة من خلال نظام تمرير رسائل محدد بوضوح، حيث تتواصل المكونات مع بعضها البعض.
يستخدم النظام سير عمل مبسطًا، يتضمن المكونات التالية:
مجموعة من الوكلاء المتخصصين الذين ينفذون الخطة:
يمكن لكل وكيل الوصول إلى أدوات محددة محسّنة لدوره، ويعمل داخل إطار عمل LangGraph.
uv
و nvm
و pnpm
# استنساخ المستودع
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
# تثبيت التبعيات، سيتعامل uv مع مترجم Python وإنشاء البيئة الافتراضية، وتثبيت الحزم المطلوبة
uv sync
# تكوين متغيرات البيئة
cp .env.example .env
# تكوين مفاتيح API الخاصة بك:
# - Tavily: https://app.tavily.com/home
# - Brave Search: https://brave.com/search/api/
# - volcengine TTS: أضف بيانات اعتماد TTS الخاصة بك إذا كانت لديك
# تكوين نموذج LLM ومفتاح API
cp conf.yaml.example conf.yaml
# تثبيت marp لإنشاء PPT
brew install marp-cli
uv run main.py
# أولاً، قم بتثبيت تبعيات واجهة المستخدم على الويب
cd deer-flow/web
pnpm install
# تشغيل الخادم الخلفي والأمامي (وضع التطوير)
# macOS/Linux
./bootstrap.sh -d
# Windows
bootstrap.bat -d
ثم قم بزيارة http://localhost:3000 لتجربة واجهة المستخدم على الويب.
يدعم DeerFlow العديد من محركات البحث، والتي يمكن تكوينها باستخدام متغير SEARCH_API
في ملف .env
:
مثال على التكوين:
# اختر واحدًا: tavily, duckduckgo, brave_search, arxiv
SEARCH_API=tavily
يتضمن DeerFlow وظيفة تحويل النص إلى كلام (TTS)، مما يسمح لك بتحويل تقارير البحث إلى كلام. تستخدم هذه الوظيفة واجهة برمجة تطبيقات volcengine TTS لإنشاء صوت عالي الجودة، وتدعم السرعة والحجم والنبرة المخصصة.
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
يستخدم DeerFlow LangGraph كهيكل لسير العمل الخاص به. يمكنك استخدام LangGraph Studio لتصحيح وتصور سير العمل في الوقت الفعلي.
# تثبيت مدير حزم 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
بعد بدء تشغيل الخادم، يمكنك الوصول إلى:
# تشغيل استعلام معين
uv run main.py "ما هي العوامل التي تؤثر على اعتماد الذكاء الاصطناعي في الرعاية الصحية؟"
# التشغيل بمعلمات تخطيط مخصصة
uv run main.py --max_plan_iterations 3 "كيف يؤثر الحوسبة الكمومية على علم التشفير؟"
# التشغيل في الوضع التفاعلي
uv run main.py --interactive
# عرض جميع الخيارات المتاحة
uv run main.py --help
يتضمن DeerFlow آلية تفاعل بين الإنسان والآلة، مما يسمح لك بمراجعة خطة البحث وتحريرها والموافقة عليها قبل التنفيذ:
[ACCEPTED]
[EDIT PLAN] أضف المزيد من الخطوات حول التنفيذ التقني
)يتضمن المشروع العديد من التقارير النموذجية التي تعرض وظائف DeerFlow:
يعتمد DeerFlow على العمل المتميز للمجتمع مفتوح المصدر، مع تقدير خاص لـ:
تجسد هذه المشاريع القوة التحويلية للتعاون مفتوح المصدر، ونحن فخورون ببناء DeerFlow على أساسها.