### What problem does this PR solve? This PR adds end-to-end Arabic support in production. It also adds a full Arabic README ### Type of change - [x] New Feature (non-breaking change which adds functionality) - [x] Documentation Update
20 KiB
Document | Roadmap | Twitter | Discord | Demo
📕 جدول المحتويات
- 💡 ما هو RAGFlow؟
- 🎮 Demo
- 📌 آخر التحديثات
- 🌟 الميزات الرئيسية
- 🔎 بنية النظام
- 🎬 ابدأ
- 🔧 التكوينات
- 🔧 إنشاء صورة Docker
- 🔨 إطلاق الخدمة من المصدر للتطوير
- 📚 التوثيق
- 📜 Roadmap
- 🏄 المجتمع
- 🙌 مساهمة
💡 ما هو RAGFlow؟
يُعد مشروع RAGFlow محركًا رائدًا ومفتوح المصدر للاسترجاع المعزز بالتوليد (RAG)، ويجمع أحدث تقنيات RAG مع قدرات الوكلاء لبناء طبقة سياق متقدمة لنماذج LLMs. يوفّر سير عمل RAG مبسّطًا وقابلًا للتكيّف مع المؤسسات بمختلف أحجامها. وبالاعتماد على محرك سياق موحّد وقوالب وكلاء جاهزة، يتيح RAGFlow للمطورين تحويل البيانات المعقّدة إلى أنظمة AI عالية الدقة وجاهزة للإنتاج بكفاءة وموثوقية.
🎮 Demo
جرّب النسخة التجريبية على https://demo.ragflow.io.
🔥 آخر التحديثات
- 2025-12-26 يدعم ميزة "Memory" لوكلاء الذكاء الاصطناعي.
- 11-11-2025 يدعم Gemini 3 Pro.
- 12-11-2025 يدعم مزامنة البيانات من Confluence، S3، Notion، Discord، Google Drive.
- 23-10-2025 يدعم MinerU وDocling كطرق لتحليل المستندات.
- 15-10-2025 يدعم العرض الأوركسترالي pipeline.
- 08-08-2025 يدعم أحدث موديلات سلسلة OpenAI.
- 01-08-2025 يدعم سير العمل الوكيل وMCP.
- 23-05-2025 تمت إضافة مكون منفذ كود Python/JavaScript إلى Agent.
- 05-05-2025 يدعم الاستعلام بين اللغات.
- 19-03-2025 يدعم استخدام نموذج متعدد الوسائط لفهم الصور داخل ملفات PDF أو DOCX.
🎉 تابعونا
⭐️ قم بتمييز مستودعنا بنجمة لتبقى على اطلاع بالميزات والتحسينات الجديدة والمثيرة! احصل على إشعارات فورية بالجديد الإصدارات! 🌟
🌟 الميزات الرئيسية
🍭 "الجودة في الداخل، الجودة في الخارج"
- الفهم العميق للمستندات لاستخراج المعرفة من البيانات غير المنظمة ذات التنسيقات المعقدة.
- يجد "إبرة في كومة قش بيانات" من الرموز غير المحدودة حرفيًا.
🍱 التقطيع القائم على القالب
- ذكي وقابل للتفسير.
- الكثير من خيارات القالب للاختيار من بينها.
🌱 استشهادات مؤرضة لتقليل الهلوسة
- تصور تقطيع النص للسماح بالتدخل البشري.
- عرض سريع للمراجع الرئيسية والاستشهادات التي يمكن تتبعها لدعم الإجابات المبنية على أسس سليمة.
🍔 التوافق مع مصادر البيانات غير المتجانسة
- يدعم Word، والشرائح، وExcel، وtxt، والصور، والنسخ الممسوحة ضوئيًا، والبيانات المنظمة، وصفحات الويب، والمزيد.
🛀 سير عمل RAG آلي وسهل
- تنسيق RAG مبسط يلبي احتياجات الشركات الشخصية والكبيرة على حد سواء.
- نماذج LLMs قابلة للتكوين بالإضافة إلى نماذج embedding.
- الاستدعاء المتعدد المقترن بإعادة التصنيف المدمجة.
- APIs بديهي للتكامل السلس مع الأعمال.
🔎 هندسة النظام
🎬 ابدأ
📝 المتطلبات الأساسية
- CPU >= 4 مراكز
- الرام >= 16 جيجا
- القرص >= 50 جيجا بايت
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
- 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 -
ابدأ تشغيل الخادم باستخدام صور Docker المعدة مسبقًا:
Caution
جميع الصور Docker مصممة لمنصات x86. لا نعرض حاليًا صور Docker لـ ARM64. إذا كنت تستخدم نظامًا أساسيًا ARM64، فاتبع هذا الدليل لإنشاء صورة Docker متوافقة مع نظامك.
يقوم الأمر أدناه بتنزيل إصدار
v0.24.0من الصورة RAGFlow Docker. راجع الجدول التالي للحصول على أوصاف لإصدارات RAGFlow المختلفة. لتنزيل إصدار RAGFlow مختلف عنv0.24.0، قم بتحديث المتغيرRAGFLOW_IMAGEوفقًا لذلك في docker/.env قبل استخدامdocker composeلبدء تشغيل الخادم.
$ cd ragflow/docker
# git checkout v0.24.0
# Optional: use a stable tag (see releases: https://github.com/infiniflow/ragflow/releases)
# This step ensures the **entrypoint.sh** file in the code matches the Docker image version.
# Use CPU for DeepDoc tasks:
$ docker compose -f docker-compose.yml up -d
# To use GPU to accelerate DeepDoc tasks:
# sed -i '1i DEVICE=gpu' .env
# docker compose -f docker-compose.yml up -d
ملاحظة: قبل
v0.22.0، قدمنا كلتا الصورتين بنماذج embedding وصورًا رفيعة بدون نماذج embedding. التفاصيل على النحو التالي:
| RAGFlow علامة الصورة | حجم الصورة (جيجابايت) | هل لديه نماذج embedding؟ | مستقر؟ |
|---|---|---|---|
| v0.21.1 | ≈9 | ✔️ | إصدار مستقر |
| v0.21.1-slim | ≈2 | ❌ | إصدار مستقر |
بدءًا من
v0.22.0، نقوم بشحن الإصدار النحيف فقط ولم نعد نلحق اللاحقة -slim بعلامة الصورة.
-
التحقق من حالة الخادم بعد تشغيل الخادم:
$ docker logs -f docker-ragflow-cpu-1النتيجة التالية تؤكد الإطلاق الناجح للنظام:
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)إذا تخطيت خطوة التأكيد هذه وقمت بتسجيل الدخول مباشرة إلى RAGFlow، فقد يعرض متصفحك تنبيه
network abnormalخطأ لأنه في تلك اللحظة، قد لا تتم تهيئة RAGFlow بشكل كامل. -
في متصفح الويب الخاص بك، أدخل عنوان IP الخاص بالخادم الخاص بك وقم بتسجيل الدخول إلى RAGFlow.
باستخدام الإعدادات الافتراضية، ما عليك سوى إدخال
http://IP_OF_YOUR_MACHINE(من دون رقم المنفذ) كإعداد افتراضي HTTP يمكن حذف منفذ العرض80عند استخدام التكوينات الافتراضية. -
في service_conf.yaml.template، حدد المصنع LLM المطلوب في
user_default_llmوقم بالتحديث الحقلAPI_KEYمع مفتاح API المقابل.راجع llm_api_key_setup لمزيد من المعلومات.
العرض بدأ!
🔧 التكوينات
عندما يتعلق الأمر بتكوينات النظام، ستحتاج إلى إدارة الملفات التالية:
- .env: يحتفظ بالإعدادات الأساسية للنظام، مثل
SVR_HTTP_PORT،MYSQL_PASSWORD، وMINIO_PASSWORD. - service_conf.yaml.template: تكوين الخدمات الخلفية. سيتم ملء متغيرات البيئة في هذا الملف تلقائيًا عند بدء تشغيل الحاوية Docker. ستكون أي متغيرات بيئة تم تعيينها داخل حاوية Docker متاحة للاستخدام، مما يسمح لك بتخصيص سلوك الخدمة استنادًا إلى بيئة النشر.
- docker-compose.yml: يعتمد النظام على docker-compose.yml لبدء التشغيل.
يوفر الملف ./docker/README وصفًا تفصيليًا لإعدادات البيئة والخدمة التكوينات التي يمكن استخدامها كـ
${ENV_VARS}في ملف service_conf.yaml.template.
لتحديث منفذ العرض الافتراضي HTTP (80)، انتقل إلى docker-compose.yml وقم بتغيير 80:80
إلى <YOUR_SERVING_PORT>:80.
تتطلب تحديثات التكوينات المذكورة أعلاه إعادة تشغيل جميع الحاويات لتصبح سارية المفعول:
$ docker compose -f docker-compose.yml up -d
تبديل محرك المستندات من Elasticsearch إلى Infinity
RAGFlow يستخدم Elasticsearch بشكل افتراضي لتخزين النص الكامل والمتجهات. للتبديل إلى Infinity، اتبع الخطوات التالية:
-
إيقاف كافة الحاويات قيد التشغيل:
$ docker compose -f docker/docker-compose.yml down -v
Warning
-vسوف يحذف docker وحدات تخزين الحاوية، وسيتم مسح البيانات الموجودة.
-
اضبط
DOC_ENGINEفي docker/.env علىinfinity. -
ابدأ الحاويات:
$ docker compose -f docker-compose.yml up -d
Warning
التبديل إلى Infinity على جهاز Linux/arm64 غير مدعوم رسميًا بعد.
🔧 أنشئ صورة Docker
يبلغ حجم هذه الصورة حوالي 2 غيغابايت وتعتمد على خدمات LLM وembedding الخارجية.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
أو إذا كنت خلف وكيل، فيمكنك تمرير وسيطات الوكيل:
docker build --platform linux/amd64 \
--build-arg http_proxy=http://YOUR_PROXY:PORT \
--build-arg https_proxy=http://YOUR_PROXY:PORT \
-f Dockerfile -t infiniflow/ragflow:nightly .
🔨 إطلاق الخدمة من المصدر للتطوير
-
قم بتثبيت
uvوpre-commit، أو قم بتخطي هذه الخطوة إذا كانا مثبتين بالفعل:pipx install uv pre-commit -
استنساخ الكود المصدري وتثبيت تبعيات بايثون:
git clone https://github.com/infiniflow/ragflow.git cd ragflow/ uv sync --python 3.12 # install RAGFlow dependent python modules uv run download_deps.py pre-commit install -
قم بتشغيل الخدمات التابعة (MinIO وElasticsearch وRedis وMySQL) باستخدام Docker Compose:
docker compose -f docker/docker-compose-base.yml up -dأضف السطر التالي إلى
/etc/hostsلحل كافة المضيفين المحددين في docker/.env إلى127.0.0.1:127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager -
إذا لم تتمكن من الوصول إلى HuggingFace، فقم بتعيين متغير البيئة
HF_ENDPOINTلاستخدام موقع مرآة:export HF_ENDPOINT=https://hf-mirror.com -
إذا كان نظام التشغيل لديك لا يحتوي على jemalloc، فيرجى تثبيته على النحو التالي:
# Ubuntu sudo apt-get install libjemalloc-dev # CentOS sudo yum install jemalloc # OpenSUSE sudo zypper install jemalloc # macOS sudo brew install jemalloc -
إطلاق الخدمة الخلفية:
source .venv/bin/activate export PYTHONPATH=$(pwd) bash docker/launch_backend_service.sh -
تثبيت تبعيات الواجهة الأمامية:
cd web npm install -
إطلاق خدمة الواجهة الأمامية:
npm run devالنتيجة التالية تؤكد الإطلاق الناجح للنظام:
-
أوقف خدمة الواجهة الأمامية والخلفية RAGFlow بعد اكتمال التطوير:
pkill -f "ragflow_server.py|task_executor.py"
📚 التوثيق
📜 Roadmap
راجع RAGFlow Roadmap 2026
🏄 المجتمع
🙌 المساهمة
RAGFlow يزدهر من خلال التعاون مفتوح المصدر. وبهذه الروح، فإننا نحتضن المساهمات المتنوعة من المجتمع. إذا كنت ترغب في أن تكون جزءًا، فراجع إرشادات المساهمة أولاً.


