21 KiB
Cloud | Document | Roadmap | Discord
📕 جدول المحتويات
💡 ما هو RAGFlow؟
يُعد مشروع RAGFlow محركًا رائدًا ومفتوح المصدر للاسترجاع المعزز بالتوليد (RAG)، ويجمع أحدث تقنيات RAG مع قدرات الوكلاء لبناء طبقة سياق متقدمة لنماذج LLMs. يوفّر سير عمل RAG مبسّطًا وقابلًا للتكيّف مع المؤسسات بمختلف أحجامها. وبالاعتماد على محرك سياق موحّد وقوالب وكلاء جاهزة، يتيح RAGFlow للمطورين تحويل البيانات المعقّدة إلى أنظمة AI عالية الدقة وجاهزة للإنتاج بكفاءة وموثوقية.
🎮 ابدأ
جرّب النسخة التجريبية على https://cloud.ragflow.io.
للنشر محليًا، راجع قسم النشر المحلي.
🔥 آخر التحديثات
-
2026-09-29 إصدار RAGFlow 1.0.0-rc1.
-
2026-09-10 إضافة استيعاب محتوى الويب عبر خرائط المواقع.
-
2026-08-19 إطلاق Knowledge Compilation لإنشاء Wiki وGraph وTree وPageIndex وMind Map وTimeline وSkills على مستوى المستند ومجموعة البيانات.
-
2026-08-19 إطلاق Agentic RAG مع أوضاع التفكير Low وMedium وHigh وUltra.
-
2026-07-02 إضافة استيعاب مصادر بيانات Google BigQuery والمزامنة التدريجية.
-
2026-06-29 إضافة قنوات دردشة WhatsApp وDingTalk وWeCom.
-
2026-05-26 إضافة مكوّن Browser لتمكين Agents من تصفح صفحات الويب والتفاعل معها.
-
2026-04-21 إضافة سبعة قوالب مضمّنة لخطوط استيعاب البيانات.
-
2026-04-21 إضافة نشر تطبيقات Agent وتنفيذ التعليمات البرمجية في Sandbox وإنشاء المخططات.
-
2026-04-21 إضافة تخزين الذاكرة واسترجاعها على مستوى المستخدم.
راجع ملاحظات الإصدار الكاملة لمزيد من التحديثات.
🎉 تابعونا
⭐️ قم بتمييز مستودعنا بنجمة لتبقى على اطلاع بالميزات والتحسينات الجديدة والمثيرة! احصل على إشعارات فورية بالجديد الإصدارات! 🌟
🌟 الميزات الرئيسية
🍭 "الجودة في الداخل، الجودة في الخارج"
- الفهم العميق للمستندات لاستخراج المعرفة من البيانات غير المنظمة ذات التنسيقات المعقدة.
- يجد "إبرة في كومة قش بيانات" من الرموز غير المحدودة حرفيًا.
🍱 التقطيع القائم على القالب
- ذكي وقابل للتفسير.
- الكثير من خيارات القالب للاختيار من بينها.
🧩 تجميع المعرفة (Knowledge Compilation)
- يحوّل المحتوى على مستوى المستند ومجموعة البيانات إلى مخرجات معرفية منظمة، مثل Wiki وGraph وTree وPageIndex وMind Map وTimeline وSkills.
- يتيح ضبط نماذج التجميع وقواعد المعالجة، ثم عرض المخرجات وتحديثها وإعادة إنشائها.
🧠 الاسترجاع الوكيلي (Agentic Retrieval)
- يحلل الأسئلة المعقدة، ويقسمها عند الحاجة، ويسترجع المعرفة ويتحقق من الأدلة عبر خطوات متعددة.
- تدعم أوضاع التفكير Low وMedium وHigh وUltra ضبط عمق الاسترجاع والاستدلال حسب تعقيد السؤال.
🌱 استشهادات مؤرضة لتقليل الهلوسة
- تصور تقطيع النص للسماح بالتدخل البشري.
- عرض سريع للمراجع الرئيسية والاستشهادات التي يمكن تتبعها لدعم الإجابات المبنية على أسس سليمة.
🍔 التوافق مع مصادر البيانات غير المتجانسة
- يدعم Word، والشرائح، وExcel، وtxt، والصور، والنسخ الممسوحة ضوئيًا، والبيانات المنظمة، وصفحات الويب، والمزيد.
🛀 سير عمل RAG آلي وسهل
- تنسيق RAG مبسط يلبي احتياجات الشركات الشخصية والكبيرة على حد سواء.
- نماذج LLMs قابلة للتكوين بالإضافة إلى نماذج embedding.
- الاستدعاء المتعدد المقترن بإعادة التصنيف المدمجة.
- APIs بديهي للتكامل السلس مع الأعمال.
🔎 هندسة النظام
🎬 الاستضافة الذاتية
🐳 نشر Docker
📝 متطلبات نشر Docker
- التكوين الابتدائي الموصى به: 4 أنوية CPU وذاكرة RAM بسعة 16 GB ومساحة قرص متاحة تبلغ 50 GB. تختلف المتطلبات الفعلية حسب محرك المستندات وحجم البيانات ومهام التحليل والتزامن؛ وقد تتطلب النماذج المحلية والمكونات الاختيارية الأخرى موارد إضافية.
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
- gVisor: مطلوب فقط عند استخدام Sandbox للحاويات Self-Managed.
لا يتطلب نشر Docker تثبيت Go على المضيف. يتطلب Self-Managed container Sandbox تثبيت gVisor وإعداده؛ أما موفرو Sandbox الآخرون فلا يتطلبون تثبيت gVisor على مضيف RAGFlow.
Tip
إذا لم تقم بتثبيت Docker على جهازك المحلي (Windows أو Mac أو Linux)، راجع تثبيت Docker Engine.
🚀 بدء تشغيل الخادم
-
تأكد من
vm.max_map_count>= 262144:للتحقق من قيمة
vm.max_map_count:sysctl vm.max_map_countأعد تعيين
vm.max_map_countإلى قيمة 262144 على الأقل إذا لم تكن كذلك.# In this case, we set it to 262144: sudo sysctl -w vm.max_map_count=262144سيتم إعادة ضبط هذا التغيير بعد إعادة تشغيل النظام. لضمان بقاء التغيير دائمًا، قم بإضافة أو تحديث
vm.max_map_countالقيمة في /etc/sysctl.conf وفقًا لذلك:vm.max_map_count=262144 -
استنساخ الريبو:
git clone https://github.com/infiniflow/ragflow.git -
انتقل إلى وسم إصدار Go وشغّل صورة Go الجاهزة باستخدام Docker Compose:
Caution
جميع الصور Docker مصممة لمنصات x86. لا نعرض حاليًا صور Docker لـ ARM64. إذا كنت تستخدم نظامًا أساسيًا ARM64، فاتبع هذا الدليل لإنشاء صورة Docker متوافقة مع نظامك.
الدخول إلى دليل نشر Docker.
cd ragflow/docker
التبديل إلى وسم إصدار Go v1.0.0-rc1.
git checkout v1.0.0-rc1
تشغيل خدمات Go وتبعياتها في الخلفية.
docker compose -f docker-compose.yml up -d
في إعداد MySQL الافتراضي، تنفّذ نقطة دخول صورة Go ترحيلات قاعدة البيانات أولًا، ثم تشغّل Syncer وAdmin وAPI وIngestor عبر bin/ragflow_server.
يستخدم DeepDoc في الإصدار مفتوح المصدر 1.0 استدلال CPU لتحليل التخطيط وOCR والتعرف على الجداول.
-
تحقق من حالة الخدمات وجاهزية API بعد بدء التشغيل:
docker psيعرض الأمر أعلاه حالة الخدمات التابعة. لا يعرّف RAGFlow فحص صحة Compose؛ تحقق من الجاهزية عبر API:
curl -f http://localhost/api/v1/system/healthzتشير استجابة HTTP 200 إلى الجاهزية. إذا غيّرت
SVR_WEB_HTTP_PORT، فاستخدم ذلك المنفذ في عنوان URL لفحص الصحة. إذا فشل بدء التشغيل، فافحص سجلات الخدمة المعنية باستخدامdocker logs --tail 50 <service>. -
في متصفح الويب الخاص بك، أدخل عنوان IP الخاص بالخادم الخاص بك وقم بتسجيل الدخول إلى RAGFlow.
باستخدام الإعدادات الافتراضية، ما عليك سوى إدخال
http://IP_OF_YOUR_MACHINE(من دون رقم المنفذ) كإعداد افتراضي HTTP يمكن حذف منفذ العرض80عند استخدام التكوينات الافتراضية. -
بعد تسجيل الدخول، أضف LLM ونموذج embedding ونموذج reranker من صفحة موفري النماذج، ثم أدخل اسم النموذج وعنوان الخدمة ومفتاح API.
راجع llm_api_key_setup لمزيد من المعلومات.
العرض بدأ!
⚙️ إعداد Docker وتعديله
يستخدم نشر Go عبر Docker الملفين docker/.env وdocker/docker-compose.yml، ويستخدم Kvrocks لتخزين ذاكرة التخزين المؤقت ونقاط التحقق، كما يستخدم NATS JetStream كقائمة انتظار للرسائل. لتعديل الصورة والمنافذ وكلمات المرور ومحرك المستندات ومصدر صور النماذج، اتبع دليل إعداد Docker. ودعم المنصات (ملاحظة: نظام macOS غير مدعوم مؤقتًا، استخدم مضيف Linux x86_64)، راجع دليل بناء صورة Go ودعم المنصات.
عند تبديل محرك المستندات أو تعديل الإعدادات وإعادة تشغيل الخدمات أو الاحتفاظ بالبيانات الحالية أو حذفها، اتبع أيضًا دليل إعداد Docker أعلاه.
🔨 إطلاق الخدمة من المصدر للتطوير
📝 متطلبات البناء من المصدر
-
ثبّت إصدار Go المحدد في
go.mod(حاليًا Go 1.27)، وClang 20 وLLD 20 وCMake 4.0 أو أحدث وملفات تطوير PCRE2. تعتمد خدمات Go على CGO والمكتبات الأصلية؛ ويضبط build.sh خيارات البناء اللازمة. -
استنسخ المستودع وجهّز المكتبات الأصلية وملفات النماذج المطلوبة للبناء، ثم ابنِ خدمات Go:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/python3 -m venv /tmp/ragflow-go-download-venv /tmp/ragflow-go-download-venv/bin/python -m pip install requests huggingface-hub /tmp/ragflow-go-download-venv/bin/python ragflow_deps/download_deps.py bash build.sh --allيجهّز البرنامج النصي المكتبات الأصلية وموارد النماذج اللازمة لبناء Go، ويحتاج إلى
requestsوhuggingface-hub. يمكن تخطي هذه الخطوة إذا جُهزت الموارد نفسها بطريقة أخرى. عند التشغيل من جذر المستودع، تعثر خدمات Go تلقائيًا علىinternal/rag/res/deepdoc؛ وللتشغيل من دليل آخر، اضبطDEEPDOC_MODEL_DIRعلى المسار المطلق لذلك الدليل. -
ابدأ الخدمات التابعة المطلوبة (Elasticsearch وMySQL وMinIO وNATS وKvrocks وClickHouse) باستخدام Docker Compose:
sudo sysctl -w vm.max_map_count=262144 docker compose --env-file docker/.env -f docker/docker-compose-base.yml \ up -d --wait es01 mysql minio nats kvrocks clickhouseتتصل خدمات Go التي تعمل من المصدر بـ Kvrocks عبر
localhost:6379، ولا يتطلب التكوين المرفق تعديل/etc/hosts. -
بعد اكتمال ترحيل قاعدة البيانات، شغّل الخدمات بالترتيب. نفّذ كل أمر في نافذة طرفية مستقلة ومن جذر المستودع، واترك نوافذ الخدمات الأربع مفتوحة:
./bin/ragflow_server --migrateRAGFLOW_DEV_MODE=true ./bin/ragflow_server --adminRAGFLOW_DEV_MODE=true ./bin/ragflow_server --ingestorRAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncerRAGFLOW_DEV_MODE=true ./bin/ragflow_server --apiتعمل أوضاع التشغيل كما يلي:
--migrate: ينفذ ترحيلات قاعدة البيانات ثم يخرج.--admin: يشغّل خدمة Admin للإدارة والتهيئة.--ingestor: يشغّل خدمة Ingestor لمهام استيعاب البيانات وتحليلها.--syncer: يشغّل خدمة Syncer لمهام مزامنة البيانات.--api: يشغّل خدمة API لواجهة الويب وSDK والعملاء الخارجيين.
يُستخدم
RAGFLOW_DEV_MODE=trueللتطوير فقط؛ فهو يعطّل فحص الرجوع بين إصدار الكود وإصدار ترحيل قاعدة البيانات، ولا ينفذ الترحيلات أو يغير المخطط. لا تستخدمه في الإنتاج. شغّل Admin قبل الخدمات الأخرى. بعد الترحيل، يشغّلRAGFLOW_DEV_MODE=true bash build.sh --runخدمات Admin وIngestor وAPI، لكنه لا يشغّل Syncer؛ شغّل Syncer منفصلًا باستخدامRAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncerلتشغيل سلسلة الخدمات كاملة. -
ثبّت Node.js وnpm وشغّل واجهة React فقط عند تطوير الواجهة الأمامية:
cd web npm install API_PROXY_SCHEME=go npm run devتحقق من جاهزية Go API من نافذة طرفية أخرى:
curl -f http://127.0.0.1:9380/api/v1/system/healthzتعني استجابة HTTP 200 أن API يستجيب. عند انتهاء التطوير، اضغط
Ctrl+Cفي كل نافذة خدمة. لإيقاف الخدمات التابعة مع الاحتفاظ بالحاويات، شغّلdocker compose --env-file docker/.env -f docker/docker-compose-base.yml stop es01 mysql minio nats kvrocks clickhouse. ولإزالة حاويات الخدمات التابعة وشبكة Compose مع الاحتفاظ بوحدات التخزين المسماة، شغّلdocker compose --env-file docker/.env -f docker/docker-compose-base.yml down.
راجع تشغيل الخدمة من المصدر لمزيد من التفاصيل.
📚 التوثيق
📜 Roadmap
راجع RAGFlow Roadmap 2026
🏄 المجتمع
🙌 المساهمة
RAGFlow يزدهر من خلال التعاون مفتوح المصدر. وبهذه الروح، فإننا نحتضن المساهمات المتنوعة من المجتمع. إذا كنت ترغب في أن تكون جزءًا، فراجع إرشادات المساهمة أولاً.



