README_ar.md
</a>
<a href="https://cloud.ragflow.io" target="_blank">
</a>
<a href="https://hub.docker.com/r/infiniflow/ragflow" target="_blank">
</a>
<a href="https://github.com/infiniflow/ragflow/releases/latest">
</a>
<a href="https://github.com/infiniflow/ragflow/blob/main/LICENSE">
</a>
<a href="https://deepwiki.com/infiniflow/ragflow">
</a>
يُعد مشروع RAGFlow محركًا رائدًا ومفتوح المصدر للاسترجاع المعزز بالتوليد (<bdi dir="ltr">RAG</bdi>)، ويجمع أحدث تقنيات <bdi dir="ltr">RAG</bdi> مع قدرات الوكلاء لبناء طبقة سياق متقدمة لنماذج <bdi dir="ltr">LLMs</bdi>. يوفّر سير عمل <bdi dir="ltr">RAG</bdi> مبسّطًا وقابلًا للتكيّف مع المؤسسات بمختلف أحجامها. وبالاعتماد على محرك سياق موحّد وقوالب وكلاء جاهزة، يتيح <bdi dir="ltr">RAGFlow</bdi> للمطورين تحويل البيانات المعقّدة إلى أنظمة <bdi dir="ltr">AI</bdi> عالية الدقة وجاهزة للإنتاج بكفاءة وموثوقية.
جرّب النسخة التجريبية على https://cloud.ragflow.io.
<div align="center" style="margin-top:20px;margin-bottom:20px;"> </div>⭐️ قم بتمييز مستودعنا بنجمة لتبقى على اطلاع بالميزات والتحسينات الجديدة والمثيرة! احصل على إشعارات فورية بالجديد الإصدارات! 🌟
<div align="center" style="margin-top:20px;margin-bottom:20px;"> </div>[!TIP] إذا لم تقم بتثبيت Docker على جهازك المحلي (Windows أو Mac أو Linux)، راجع تثبيت Docker Engine.
تأكد من vm.max_map_count >= 262144:
للتحقق من قيمة
vm.max_map_count:bash$ sysctl vm.max_map_countأعد تعيين
vm.max_map_countإلى قيمة 262144 على الأقل إذا لم تكن كذلك.bash# In this case, we set it to 262144: $ sudo sysctl -w vm.max_map_count=262144سيتم إعادة ضبط هذا التغيير بعد إعادة تشغيل النظام. لضمان بقاء التغيير دائمًا، قم بإضافة أو تحديث
vm.max_map_countالقيمة في /etc/sysctl.conf وفقًا لذلك:bashvm.max_map_count=262144
استنساخ الريبو:
$ git clone https://github.com/infiniflow/ragflow.git
ابدأ تشغيل الخادم باستخدام صور Docker المعدة مسبقًا:
[!CAUTION] جميع الصور Docker مصممة لمنصات x86. لا نعرض حاليًا صور Docker لـ ARM64. إذا كنت تستخدم نظامًا أساسيًا ARM64، فاتبع هذا الدليل لإنشاء صورة Docker متوافقة مع نظامك.
يقوم الأمر أدناه بتنزيل إصدار
v0.25.1من الصورة RAGFlow Docker. راجع الجدول التالي للحصول على أوصاف لإصدارات RAGFlow المختلفة. لتنزيل إصدار RAGFlow مختلف عنv0.25.1، قم بتحديث المتغيرRAGFLOW_IMAGEوفقًا لذلك في docker/.env قبل استخدامdocker composeلبدء تشغيل الخادم.
$ cd ragflow/docker
# git checkout v0.25.1
# 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 لمزيد من المعلومات.
العرض بدأ!
عندما يتعلق الأمر بتكوينات النظام، ستحتاج إلى إدارة الملفات التالية:
SVR_HTTP_PORT، MYSQL_PASSWORD، و
MINIO_PASSWORD.يوفر الملف ./docker/README وصفًا تفصيليًا لإعدادات البيئة والخدمة التكوينات التي يمكن استخدامها كـ
${ENV_VARS}في ملف service_conf.yaml.template.
لتحديث منفذ العرض الافتراضي HTTP (80)، انتقل إلى docker-compose.yml وقم بتغيير 80:80
إلى <YOUR_SERVING_PORT>:80.
تتطلب تحديثات التكوينات المذكورة أعلاه إعادة تشغيل جميع الحاويات لتصبح سارية المفعول:
bash$ docker compose -f docker-compose.yml up -d
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 غير مدعوم رسميًا بعد.
يبلغ حجم هذه الصورة حوالي 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 python3 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"
راجع RAGFlow Roadmap 2026
RAGFlow يزدهر من خلال التعاون مفتوح المصدر. وبهذه الروح، فإننا نحتضن المساهمات المتنوعة من المجتمع. إذا كنت ترغب في أن تكون جزءًا، فراجع إرشادات المساهمة أولاً.