### 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
18 KiB
Documentation | Roadmap | Twitter | Discord | Démo
📕 Table des matières
💡 Qu'est-ce que RAGFlow?
RAGFlow est un moteur de RAG (Retrieval-Augmented Generation) open-source de premier plan qui fusionne les technologies RAG de pointe avec des capacités Agent pour créer une couche de contexte supérieure pour les LLM. Il offre un flux de travail RAG rationalisé, adaptable aux entreprises de toute taille. Alimenté par un moteur de contexte convergent et des modèles d'agents préconstruits, RAGFlow permet aux développeurs de transformer des données complexes en systèmes d'IA haute-fidélité, prêts pour la production, avec une efficacité et une précision exceptionnelles.
🎮 Démo
Essayez notre démo sur https://demo.ragflow.io.
🔥 Dernières mises à jour
- 26-12-2025 Prise en charge de la « Mémoire » pour l'agent IA.
- 19-11-2025 Prise en charge de Gemini 3 Pro.
- 12-11-2025 Prise en charge de la synchronisation de données depuis Confluence, S3, Notion, Discord et Google Drive.
- 23-10-2025 Prise en charge de MinerU & Docling comme méthodes d'analyse de documents.
- 15-10-2025 Prise en charge du pipeline d'ingestion orchestrable.
- 08-08-2025 Prise en charge des derniers modèles de la série GPT-5 d'OpenAI.
- 01-08-2025 Prise en charge du flux de travail agentique et de MCP.
- 23-05-2025 Ajout d'un composant exécuteur de code Python/JavaScript à l'Agent.
- 05-05-2025 Prise en charge des requêtes inter-langues.
- 19-03-2025 Prise en charge de l'utilisation d'un modèle multi-modal pour analyser les images dans les fichiers PDF ou DOCX.
🎉 Restez informé
⭐️ Mettez une étoile à notre dépôt pour rester informé des nouvelles fonctionnalités et améliorations passionnantes ! Recevez des notifications instantanées pour les nouvelles versions ! 🌟
🌟 Fonctionnalités clés
🍭 "Quality in, quality out"
- Extraction de connaissances basée sur la compréhension approfondie des documents à partir de données non structurées aux formats complexes.
- Trouve "l'aiguille dans la meule de données" de tokens littéralement illimités.
🍱 Découpage(Chunking) basé sur des templates
- Intelligent et explicable.
- De nombreuses options de templates disponibles.
🌱 Citations fondées avec réduction des hallucinations
- Visualisation du découpage de texte pour permettre une intervention humaine.
- Aperçu rapide des références clés et citations traçables pour soutenir des réponses fondées.
🍔 Compatibilité avec des sources de données hétérogènes
- Prend en charge Word, présentations, Excel, txt, images, copies numérisées, données structurées, pages web, et plus encore.
🛀 Flux de travail RAG automatisé et sans effort
- Orchestration RAG rationalisée adaptée aux particuliers comme aux grandes entreprises.
- LLM et modèles d'embedding configurables.
- Rappel multiple associé à un ré-classement fusionné.
- APIs intuitives pour une intégration transparente avec les entreprises.
🔎 Architecture du système
🎬 Démarrage
📝 Prérequis
- CPU >= 4 cœurs
- RAM >= 16 Go
- Disque >= 50 Go
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
- gVisor : Requis uniquement si vous souhaitez utiliser la fonctionnalité d'exécuteur de code (sandbox) de RAGFlow.
Tip
Si vous n'avez pas installé Docker sur votre machine locale (Windows, Mac ou Linux), consultez Installer Docker Engine.
🚀 Démarrer le serveur
-
Assurez-vous que
vm.max_map_count>= 262144 :Pour vérifier la valeur de
vm.max_map_count:$ sysctl vm.max_map_countRéinitialisez
vm.max_map_countà une valeur d'au moins 262144 si ce n'est pas le cas.# Dans ce cas, nous le définissons à 262144 : $ sudo sysctl -w vm.max_map_count=262144Ce changement sera réinitialisé après un redémarrage du système. Pour que votre modification reste permanente, ajoutez ou mettez à jour la valeur
vm.max_map_countdans /etc/sysctl.conf :vm.max_map_count=262144 -
Clonez le dépôt :
$ git clone https://github.com/infiniflow/ragflow.git -
Démarrez le serveur en utilisant les images Docker préconstruites :
Caution
Toutes les images Docker sont construites pour les plateformes x86. Nous ne proposons pas actuellement d'images Docker pour ARM64. Si vous êtes sur une plateforme ARM64, suivez ce guide pour construire une image Docker compatible avec votre système.
La commande ci-dessous télécharge l'édition
v0.24.0de l'image Docker RAGFlow. Consultez le tableau suivant pour les descriptions des différentes éditions de RAGFlow. Pour télécharger une édition de RAGFlow différente dev0.24.0, mettez à jour la variableRAGFLOW_IMAGEdans docker/.env avant d'utiliserdocker composepour démarrer le serveur.
$ cd ragflow/docker
# git checkout v0.24.0
# Optionnel : utiliser un tag stable (voir les versions : https://github.com/infiniflow/ragflow/releases)
# Cette étape garantit que le fichier **entrypoint.sh** dans le code correspond à la version de l'image Docker.
# 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
Remarque : Avant
v0.22.0, nous fournissions à la fois des images avec des modèles d'embedding et des images slim sans modèles d'embedding. Détails ci-dessous :
| RAGFlow image tag | Image size (GB) | Has embedding models? | Stable? |
|---|---|---|---|
| v0.21.1 | ≈9 | ✔️ | Stable release |
| v0.21.1-slim | ≈2 | ❌ | Stable release |
À partir de
v0.22.0, nous ne distribuons que l'édition slim et ne rajoutons plus le suffixe -slim au tag d'image.
-
Vérifiez l'état du serveur après son démarrage :
$ docker logs -f docker-ragflow-cpu-1La sortie suivante confirme un lancement réussi du système :
____ ___ ______ ______ __ / __ \ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ \| | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ * Running on all addresses (0.0.0.0)Si vous sautez cette étape de confirmation et vous connectez directement à RAGFlow, votre navigateur peut afficher une erreur
network abnormal, car à ce moment-là, votre RAGFlow peut ne pas être entièrement initialisé. -
Dans votre navigateur web, entrez l'adresse IP de votre serveur et connectez-vous à RAGFlow.
Avec les paramètres par défaut, il vous suffit d'entrer
http://IP_OF_YOUR_MACHINE(sans numéro de port), car le port HTTP par défaut80peut être omis lors de l'utilisation des configurations par défaut. -
Dans service_conf.yaml.template, sélectionnez la fabrique LLM souhaitée dans
user_default_llmet mettez à jour le champAPI_KEYavec la clé API correspondante.Voir llm_api_key_setup pour plus d'informations.
Le spectacle commence !
🔧 Configurations
En ce qui concerne les configurations système, vous devrez gérer les fichiers suivants :
- .env : Conserve les paramètres de base du système, tels que
SVR_HTTP_PORT,MYSQL_PASSWORDetMINIO_PASSWORD. - service_conf.yaml.template : Configure les services back-end. Les variables d'environnement dans ce fichier seront automatiquement renseignées au démarrage du conteneur Docker. Toutes les variables d'environnement définies dans le conteneur Docker seront disponibles, vous permettant de personnaliser le comportement du service en fonction de l'environnement de déploiement.
- docker-compose.yml : Le système s'appuie sur docker-compose.yml pour démarrer.
Le fichier ./docker/README fournit une description détaillée des paramètres d'environnement et des configurations de services qui peuvent être utilisés comme
${ENV_VARS}dans le fichier service_conf.yaml.template.
Pour mettre à jour le port HTTP de service par défaut (80), accédez à docker-compose.yml et changez 80:80 en <YOUR_SERVING_PORT>:80.
Les mises à jour des configurations ci-dessus nécessitent un redémarrage de tous les conteneurs pour prendre effet :
$ docker compose -f docker-compose.yml up -d
Passer du moteur de documents Elasticsearch à Infinity
RAGFlow utilise Elasticsearch par défaut pour stocker le texte intégral et les vecteurs. Pour passer à Infinity, suivez ces étapes :
-
Arrêtez tous les conteneurs en cours d'exécution :
$ docker compose -f docker/docker-compose.yml down -v
Warning
-vsupprimera les volumes des conteneurs Docker, et les données existantes seront effacées.
-
Définissez
DOC_ENGINEdans docker/.env surinfinity. -
Démarrez les conteneurs :
$ docker compose -f docker-compose.yml up -d
Warning
Le passage à Infinity sur une machine Linux/arm64 n'est pas encore officiellement pris en charge.
🔧 Construire une image Docker
Cette image fait environ 2 Go et dépend de services LLM et d'embedding externes.
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/
docker build --platform linux/amd64 -f Dockerfile -t infiniflow/ragflow:nightly .
Ou si vous êtes derrière un proxy, vous pouvez passer des arguments de proxy :
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 .
🔨 Lancer le service depuis les sources pour le développement
-
Installez
uvetpre-commit, ou ignorez cette étape s'ils sont déjà installés :pipx install uv pre-commit -
Clonez le code source et installez les dépendances Python :
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 -
Lancez les services dépendants (MinIO, Elasticsearch, Redis et MySQL) avec Docker Compose :
docker compose -f docker/docker-compose-base.yml up -dAjoutez la ligne suivante à
/etc/hostspour résoudre tous les hôtes spécifiés dans docker/.env vers127.0.0.1:127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager -
Si vous ne pouvez pas accéder à HuggingFace, définissez la variable d'environnement
HF_ENDPOINTpour utiliser un site miroir :export HF_ENDPOINT=https://hf-mirror.com -
Si votre système d'exploitation n'a pas jemalloc, installez-le comme suit :
# Ubuntu sudo apt-get install libjemalloc-dev # CentOS sudo yum install jemalloc # OpenSUSE sudo zypper install jemalloc # macOS sudo brew install jemalloc -
Lancez le service back-end :
source .venv/bin/activate export PYTHONPATH=$(pwd) bash docker/launch_backend_service.sh -
Installez les dépendances front-end :
cd web npm install -
Lancez le service front-end :
npm run devLa sortie suivante confirme un lancement réussi du système :
-
Arrêtez les services front-end et back-end de RAGFlow une fois le développement terminé :
pkill -f "ragflow_server.py|task_executor.py"
📚 Documentation
📜 Roadmap
Voir la Feuille de route RAGFlow 2026
🏄 Communauté
🙌 Contribuer
RAGFlow s'épanouit grâce à la collaboration open-source. Dans cet esprit, nous accueillons des contributions diverses de la communauté. Si vous souhaitez en faire partie, consultez d'abord nos Directives de contribution.


