Files
ragflow/README_ar.md
Idriss Sbaaoui b0ace2c5d0 feat: enable Arabic in production UI and add complete Arabic documentation (#13315)
### 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
2026-03-02 19:10:11 +08:00

20 KiB
Raw Blame History

README in English 简体中文版自述文件 繁體版中文自述文件 日本語のREADME 한국어 Bahasa Indonesia Português(Brasil) README en Français README in Arabic

follow on X(Twitter) Static Badge docker pull infiniflow/ragflow:v0.24.0 Latest Release license Ask DeepWiki

Document | Roadmap | Twitter | Discord | Demo

infiniflow%2Fragflow | Trendshift
📕 جدول المحتويات

💡 ما هو 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.

🚀 بدء تشغيل الخادم

  1. تأكد من 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
    
  2. استنساخ الريبو:

    $ git clone https://github.com/infiniflow/ragflow.git
    
  3. ابدأ تشغيل الخادم باستخدام صور 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 بعلامة الصورة.

  1. التحقق من حالة الخادم بعد تشغيل الخادم:

    $ docker logs -f docker-ragflow-cpu-1
    

    النتيجة التالية تؤكد الإطلاق الناجح للنظام:

    
          ____   ___    ______ ______ __
         / __ \ /   |  / ____// ____// /____  _      __
        / /_/ // /| | / / __ / /_   / // __ \| | /| / /
       / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
      /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/
    
     * Running on all addresses (0.0.0.0)
    

    إذا تخطيت خطوة التأكيد هذه وقمت بتسجيل الدخول مباشرة إلى RAGFlow، فقد يعرض متصفحك تنبيه network abnormal خطأ لأنه في تلك اللحظة، قد لا تتم تهيئة RAGFlow بشكل كامل.

  2. في متصفح الويب الخاص بك، أدخل عنوان IP الخاص بالخادم الخاص بك وقم بتسجيل الدخول إلى RAGFlow.

    باستخدام الإعدادات الافتراضية، ما عليك سوى إدخال http://IP_OF_YOUR_MACHINE (من دون رقم المنفذ) كإعداد افتراضي HTTP يمكن حذف منفذ العرض 80 عند استخدام التكوينات الافتراضية.

  3. في 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، اتبع الخطوات التالية:

  1. إيقاف كافة الحاويات قيد التشغيل:

    $ docker compose -f docker/docker-compose.yml down -v
    

Warning

-v سوف يحذف docker وحدات تخزين الحاوية، وسيتم مسح البيانات الموجودة.

  1. اضبط DOC_ENGINE في docker/.env على infinity.

  2. ابدأ الحاويات:

    $ 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 .

🔨 إطلاق الخدمة من المصدر للتطوير

  1. قم بتثبيت uv وpre-commit، أو قم بتخطي هذه الخطوة إذا كانا مثبتين بالفعل:

    pipx install uv pre-commit
    
  2. استنساخ الكود المصدري وتثبيت تبعيات بايثون:

    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
    
  3. قم بتشغيل الخدمات التابعة (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
    
  4. إذا لم تتمكن من الوصول إلى HuggingFace، فقم بتعيين متغير البيئة HF_ENDPOINT لاستخدام موقع مرآة:

    export HF_ENDPOINT=https://hf-mirror.com
    
  5. إذا كان نظام التشغيل لديك لا يحتوي على jemalloc، فيرجى تثبيته على النحو التالي:

    # Ubuntu
    sudo apt-get install libjemalloc-dev
    # CentOS
    sudo yum install jemalloc
    # OpenSUSE
    sudo zypper install jemalloc
    # macOS
    sudo brew install jemalloc
    
  6. إطلاق الخدمة الخلفية:

    source .venv/bin/activate
    export PYTHONPATH=$(pwd)
    bash docker/launch_backend_service.sh
    
  7. تثبيت تبعيات الواجهة الأمامية:

    cd web
    npm install
    
  8. إطلاق خدمة الواجهة الأمامية:

    npm run dev
    

    النتيجة التالية تؤكد الإطلاق الناجح للنظام:

  9. أوقف خدمة الواجهة الأمامية والخلفية RAGFlow بعد اكتمال التطوير:

    pkill -f "ragflow_server.py|task_executor.py"
    

📚 التوثيق

📜 Roadmap

راجع RAGFlow Roadmap 2026

🏄 المجتمع

🙌 المساهمة

RAGFlow يزدهر من خلال التعاون مفتوح المصدر. وبهذه الروح، فإننا نحتضن المساهمات المتنوعة من المجتمع. إذا كنت ترغب في أن تكون جزءًا، فراجع إرشادات المساهمة أولاً.