RAGFlow
Moteur RAG open source mettant l’accent sur la compréhension des documents et la recherche traçable
Étiquettes :AI AgentQu’est-ce que RAGFlow ?
RAGFlow est un moteur d’amélioration de la génération par recherche et une plateforme d’agent IA open source développée par l’équipe InfiniFlow. Il regroupe dans un seul système la collecte de documents, la compréhension du format, le découpage, la vectorisation, la recherche sur tout le texte, le réarrangement, les systèmes Q&A, les workflows d’agent et les API, dans le but de créer une couche de contexte traçable et gérable pour les grands modèles de langage.
Contrairement aux bases de connaissances légères qui se contentent de découper du texte brut en segments de longueur fixe, RAGFlow met davantage l’accent sur la structure complexe des documents. Il identifie les titres, les paragraphes, les tableaux, les images et le layout des pages, et permet à l’utilisateur de visualiser et de modifier chaque chunk ainsi que sa position, ce qui le rend adapté aux contrats, aux rapports financiers, aux thèses, aux manuels d’instruction, aux scans et aux fichiers Office à structure complexe.
Fonctionnalités clés
1. Compréhension approfondie des documents
DeepDoc intégré et un pipeline d’ingestion programmable permettent d’analyser Word, Slides, Excel, TXT, images, scans, données structurées et pages web. Le système peut combiner l’OCR, l’analyse de mise en page et des modèles multimodaux pour extraire le texte, les tableaux et le sens des images, tout en conservant la position du document et les métadonnées.
La nouvelle version permet également de choisir des backends de parsing tels que MinerU, Docling, OpenDataLoader, etc. Les différents analyseurs présentent des performances significativement différentes pour les documents scannés, les articles à deux colonnes, les formules, les tableaux complexes et les gros fichiers ; avant leur mise en stock officielle, il convient de vérifier au hasard la prévisualisation du parsing, plutôt que de supposer que tout PDF peut être converti sans perte.
2. Blocage par modélisation
RAGFlow propose différents modèles de chunks en fonction du type de document, tels que les documents généraux, les livres, les thèses, les documents juridiques, les Q&R, les tableaux, les images et les graphes de connaissances. Ces modèles tiennent compte du niveau des titres, des limites des paragraphes et des informations de mise en page ; l’utilisateur peut visualiser les résultats de segmentation dans l’interface et les modifier manuellement.
La taille des blocs détermine le niveau de granularité de la recherche. Des blocs trop petits entraînent une perte de contexte, tandis que des blocs trop grands augmentent le bruit et les coûts de tokens.
Chaque modèle doit être testé avec des problèmes réels, et les séparateurs, la taille des blocs, l’overlap ainsi que les métadonnées doivent être ajustés en fonction des données.
3. Vecteurs, BM25 et recherche mixte
La couche de recherche prend en charge à la fois la recherche sémantique vectorielle et la recherche full-text BM25, permettant de définir des poids pour chacune d’elles et de fusionner les résultats provenant de différentes sources. Les vecteurs conviennent aux expressions synonymes, tandis que BM25 est adapté aux numéros, noms de personnes, modèles de produits et termes précis.
Le modèle de réarrangement évaluera à nouveau la pertinence du fragment candidat par rapport à la question.
Par défaut, le système peut utiliser Elasticsearch pour stocker le texte intégral et les vecteurs, ou passer à l’engine de documents open source Infinity d’InfiniFlow. Changer d’engine de documents implique la reconstruction des données voire la suppression des volumes existants ; il n’est pas possible d’exécuter directement des commandes de migration non sauvegardées en environnement de production.
4. Questions-réponses traçables et citations
L’assistant de conversation affiche les extraits de documents et les citations sur lesquels se base la réponse, permettant à l’utilisateur de revenir rapidement au texte original pour vérifier. La page de test de recherche permet d’examiner séparément le contenu récupéré, la similarité et le classement, afin de distinguer le cas où « aucune information correcte n’a été trouvée » de celui où « le modèle a lu l’information mais a donné une réponse erronée ».
Une citation ne prouve que le système a utilisé un fragment donné ; elle ne garantit pas que les conclusions soient complètes ou correctes. Les documents juridiques, médicaux, financiers et les rapports de recherche doivent encore être lus manuellement pour vérifier les dates, les versions, les unités des tableaux et les clauses exceptionnelles.
5. RAPTOR,PageIndex et graphes de connaissances
RAPTOR effectue un clustering hiérarchique et une synthèse des documents ou ensembles de données, permettant au système de rechercher des détails tout en identifiant des thèmes globaux à travers les différents chapitres. La nouvelle version propose les modèles GMM et AHC, lequel étend l’organisation sémantique à l’ensemble des données.
PageIndex utilise les informations de table des matières et de hiérarchie pour localiser le contenu des documents longs.
L’analyse des graphes de connaissances permet d’extraire des entités et des relations, fournissant ainsi des liens structurés pour les problèmes à plusieurs étapes. Ces index avancés augmentent le temps d’analyse, les appels de modèles et l’espace de stockage, et peuvent amplifier les résumés erronés ou les entités incorrectes ; il convient de valider les avantages à l’aide de données d’évaluation avant de les mettre en œuvre.
6. Connexion et synchronisation des sources de données
En plus du téléchargement local, RAGFlow peut se connecter à des sources de données telles que S3, Google Drive, Notion, Confluence, Discord, GitHub, GitLab, Bitbucket, Gmail, IMAP, Zendesk, RSS, Seafile, Airtable, Asana, Moodle, les tableurs DingTalk AI et les API REST générales.
Certains connecteurs prennent en charge la synchronisation incrémentale et la synchronisation de suppression à distance.
Le connecteur de source de données a besoin d’un jeton d’accès ou d’un compte de service. Il convient d’utiliser des droits en lecture seule et d’une portée minimale, de limiter le catalogue de synchronisation et de vérifier les règles de propagation des suppressions.
Après mise à jour du document distant, une nouvelle analyse peut modifier les IDs de chunk et les références ; les applications en production doivent prévoir des fenêtres d’indexation ainsi que des tests de régression.
7. Agents d’IA et orchestration visuelle
La toile d’agent peut combiner la recherche dans une base de connaissances, des modèles, des outils, l’exécution de code, un navigateur, la génération de documents, la recherche et d’autres agents en workflows. Des modèles prédéfinis sont fournis pour des scénarios tels que l’analyse de données, la recherche d’investissement, l’analyse de cas juridiques et la maintenance industrielle ; elle prend également en charge la collaboration entre plusieurs agents, la planification autonome et une mémoire à long terme au niveau de l’utilisateur.
Les composants navigateur permettent à l’IA de naviguer et d’interagir avec les pages web ; les exécuteurs Python et JavaScript peuvent générer des graphiques et traiter des fichiers.
Ce type de fonctionnalités doit être placé dans un sandbox, avec des restrictions sur le réseau, les fichiers et le temps d’exécution.
Lorsque le modèle exécute automatiquement des pages web ou du code, une confirmation manuelle est requise pour les étapes clés telles que la connexion, le paiement, l’envoi et la suppression.
8. MCP et outils
RAGFlow peut utiliser les services MCP au sein de workflows, ainsi que démarrer un serveur MCP officiel pour fournir des fonctionnalités telles que la recherche de datasets et la messagerie aux clients compatibles avec MCP. La nouvelle version propose également un décorateur d’outil Python léger pour aider les développeurs à enregistrer leurs fonctions.
MCP est en phase d’évolution rapide ; les champs, les mécanismes d’authentification et les retours des outils peuvent varier d’une version à l’autre. Avant de l’intégrer dans un agent en production, il convient de fixer la version, de tester le traitement des erreurs et de configurer des droits minimaux ; les outils MCP tiers ne doivent pas être considérés comme ayant fait l’objet d’une audit de sécurité officiel.
9. API REST et SDK
Les développeurs peuvent utiliser l’API REST et le SDK Python officiel pour gérer les ensembles de données, les documents, les chunks, les assistants de conversation, les sessions, les agents et la recherche. L’interface de fin de conversation est compatible avec les méthodes d’appel en flux courantes, ce qui facilite l’intégration de RAGFlow dans des sites web, des services client, des systèmes internes et des tâches automatisées.
La clé API ne doit être stockée que du côté serveur, afin d’isoler les ressources par locataire, de limiter la fréquence des requêtes et d’enregistrer des audits. La version gratuite cloud officielle ne fournit pas de clé API ; seules les versions Starter et Pro offrent cette fonctionnalité.
10. Support multi-modèles
La plateforme peut configurer plusieurs modèles linguistiques, des Embedding, des services de reranking, ainsi que des fournisseurs de génération de voix, d’images et de vidéos, et peut également se connecter à des services de modèles locaux. À partir de la version 0.22, les images auto-hébergées ne disposent plus intégralement de modèles Embedding ; il est nécessaire de configurer des endpoints de modèles externes ou locaux.
Les frais des modèles cloud et ceux du logiciel RAGFlow sont calculés séparément. Lorsqu’un modèle vectoriel est remplacé, l’index doit être regénéré ;
Les modèles locaux de grande taille et l’accélération OCR nécessitent également des ressources GPU supplémentaires.
11. Publication multicanal
Les pages de chat, d’agent et de recherche peuvent intégrer des sites tiers ; la nouvelle version des pages intégrées est compatible avec les appareils mobiles et prend en charge des canaux de chat tels que Feishu, Discord, Telegram, Line, etc. Avant la publication, il convient de configurer l’identité, l’isolation des sessions, les quotas, la modération du contenu ainsi que les droits de téléchargement des citations.
Prix des services cloud
Le service cloud officiel RAGFlow propose actuellement trois forfaits mensuels en dollars, la page affiche également le prix d’origine souligné ; les prix indiqués ci-dessous correspondent aux tarifs promotionnels en vigueur :
| Forfait ou version | Prix, plafonds et avantages clés |
|---|---|
| Free | 0 dollar/mois, 5 applications, 1 membre d’équipe, 0,1 GB de stockage de données, 500 Crédits par mois, aucune clé API fournie ; |
| Starter | 29 dollars/mois, 50 applications, 5 membres, stockage de 5 GB de données, 5000 Crédits par mois, clé API fournie ; le prix initial de la page était de 59 dollars/mois ; |
| Pro | 129 dollars/mois, nombre illimité d’applications, 20 membres, stockage de 50 GB de données, 20 000 crédits par mois, clé API fournie ; le prix initial de la page était de 259 dollars/mois. |
La consommation précise des crédits dépend du modèle, de l’analyse et des tâches d’exécution ; les prix des forfaits, les offres et les limites de ressources peuvent varier, il convient de se référer à la page de facturation. Pour une capacité plus élevée, un déploiement privé et des SLA adaptés aux grandes entreprises, il est nécessaire de contacter le fournisseur officiel ou le prestataire pour obtenir des informations.
Autogestion et exigences matérielles
RAGFlow peut être déployé en privé via Docker Compose. Les exigences minimales officielles sont : 4 cœurs CPU, 16 GB de mémoire, 50 GB d’espace disque, Docker 24.0 ou une version ultérieure, Docker Compose 2.26.1 ou une version ultérieure ; pour le développement du code source, Python 3.13 ou une version ultérieure est requis.
gVisor est également nécessaire lors de l’utilisation d’un sable pour l’exécution de code.
Les images préconstruites officielles sont actuellement destinées aux plateformes x86 et ne fournissent pas directement d’images ARM64 ; les utilisateurs ARM64 doivent les construire eux-mêmes. À partir de la version 0.22, seules des images allégées d’environ 2 GB sont publiées, sans modèles d’Embedding.
Après décompression et exécution de l’image, l’espace occupé est d’environ 7 Go ; les documents, index, journaux et bases de données continueront d’augmenter l’utilisation du disque.
Les dépendances par défaut comprennent généralement MySQL, MinIO, Redis ainsi qu’Elasticsearch ou Infinity. Elasticsearch exige que le nombre de mappages de mémoire virtuelle du hôte soit d’au moins 262144.
Un environnement de production nécessite également HTTPS, des volumes persistants, des sauvegardes de base de données et de stockage d’objets, une surveillance, ainsi que le renouvellement des clés et le retraitement en cas de mise à jour.
GitHub et les licences open source
Le code source de RAGFlow est hébergé dans l’organisation GitHub officielle d’InfiniFlow, sous la licence Apache License 2.0, ce qui permet son utilisation, modification, distribution et utilisation à des fins commerciales sous réserve du respect de la licence et des conditions NOTICE. Le SDK Python officiel est également soumis à Apache 2.0.
Au moment de cette vérification, les documents officiels et la configuration Docker par défaut utilisent la version stable 0.26.4. Le projet est encore en phase 0.x et fait l’objet d’actualisations fréquentes ; l’API, la base de données et les connecteurs peuvent donc changer.
Lors du déploiement, il faut assurer que l’image et le code soient à la même version, et lire le script de mise à niveau ainsi que les instructions de distribution.
Sécurité des données et maintenance opérationnelle
Une mise en œuvre privée permet de conserver les fichiers, les index et les sessions dans son propre environnement, mais si des services LLM externes, d’Embedding, de Rerank, d’OCR ou de recherche sont utilisés, les textes et fragments correspondants seront néanmoins transmis à des tiers. Pour les documents sensibles, il convient de vérifier les conditions de conservation des données, d’entraînement et les règles géographiques du fournisseur, et d’utiliser uniquement des modèles locaux si nécessaire.
L’exécution de code, les navigateurs, les connecteurs et MCP élargissent la surface d’attaque. Il convient d’activer les sandbox, les principes du moindre privilège, les listes blanches réseau, des limites de taille et de type de fichiers, la protection contre l’injection de prompts, le masquage des journaux ainsi que la gestion des correctifs.
Les mots de passe par défaut des bases de données et du stockage d’objets dans le profil doivent être modifiés.
Guide d’utilisation de RAGFlow
Terminer une tâche de base
- Inscrivez-vous à RAGFlow et créez une clé API réservée uniquement à l’environnement de test ;
- Sélectionner le modèle en fonction du type d’entrée, du contexte, de la qualité, de la vitesse et du prix ;
- Appeler d’abord la compréhension de documents en profondeur pour traiter la requête minimale et vérifier la structure de retour ;
- Utiliser ensuite le test par blocage de template pour tester la sortie en flux, les paramètres et les réponses aux exceptions ;
- Enregistrer les tokens, le nombre d’appels, le délai, le taux d’erreurs et le coût par appel ;
- Transférez la clé dans le gestionnaire de clés du serveur avant de l’intégrer à l’application officielle ;
Créer des flux de travail professionnels réutilisables
- Utiliser des clés et des quotas différents pour les environnements de développement, de test et de production ;
- Établir un ensemble d’évaluation représentatif en comprenant les documents en fonction de leur profondeur, en modélisant la segmentation en blocs et vecteurs, ainsi qu’en utilisant BM25 et des méthodes de recherche mixtes ;
- Définir les délais d’attente, la concurrence, les tentatives de réessai, le throttling et les plafonds budgétaires ;
- Effectuer des vérifications sur la sortie en ce qui concerne les faits, la sécurité, le format et les informations sensibles ;
- Surveiller les changements de version, de prix, de délai et de taux d’échec des modèles de surveillance ;
- Préparer des plans de dégradation du modèle, de coupure et de prise en main manuelle ;
À qui s’adresse-t-il ?
- Les entreprises qui ont besoin d’analyser des états financiers, des thèses, des contrats, des manuels et des documents numérisés ;
- Projets RAG qui accordent de l’importance aux tableaux, aux images et à la structure de mise en page des documents ;
- Des équipes de recherche et développement nécessaires pour la recherche mixte, le réarrangement, RAPTOR et les graphes de connaissances ;
- Les organisations qui souhaitent se connecter à de nombreux disques cloud, plateformes de collaboration et sources de données métier ;
- Développeurs ayant besoin d’un flux de travail Agent, de code, d’un navigateur et d’outils MCP ;
- Les équipes qui souhaitent intégrer un contexte de recherche dans leurs produits existants via une API ou un SDK.
Avantages du produit
- L’analyse et la visualisation de documents complexes par blocs constituent les fonctionnalités clés ;
- Vecteurs, BM25, combinaison complète de récupération multiple et de réarrangement ;
- Les citations sont traçables, ce qui facilite la localisation et la correction manuelle des fragments de connaissances ;
- Prend en charge des index avancés tels que RAPTOR,PageIndex et les graphes de connaissances ;
- Les connecteurs de sources de données, les agents, MCP, API et SDK offrent une large couverture ;
- La licence Apache 2.0 est plus favorable à l’intégration commerciale ;
- Offre en même temps des services cloud officiels et des solutions de déploiement privé complètes.
Restrictions et précautions
- Les composants RAGFlow sont nombreux, consomment beaucoup de ressources et leur maintenance est généralement plus complexe que celle des bases de connaissances légères ;
- 16 GB de mémoire, c’est le minimum officiel, mais cela ne convient qu’au démarrage. De nombreux documents, une forte concurrence, l’OCR et les modèles locaux exigent des spécifications plus élevées ainsi que la planification de clusters.
- Une analyse approfondie ne peut pas non plus garantir que tous les fichiers soient corrects ;
- Après le téléchargement, il est nécessaire de procéder à un contrôle aléatoire du texte, des tableaux, des images, des chunks et des citations ;
- Les index avancés augmentent les coûts et le temps d’attente ;
- Les mises à jour de la version 0.x sont fréquentes, il ne faut pas utiliser directement les images nightly dans un environnement de production ;
Questions fréquentes
RAGFlow est-il gratuit ?
La version open source auto-hébergée est gratuite, les coûts de serveur et de modèles sont à votre charge ; le service cloud officiel propose une version gratuite à 0 dollar, Starter à 29 dollars par mois, et Pro à 129 dollars par mois.
RAGFlow prend-il en charge le chinois ?
Prise en charge de l’interface chinoise, de l’analyse de documents, de la recherche et de divers modèles chinois. La qualité réelle de l’OCR, du segmentement des mots et des réponses dépend de la configuration du analyseur, des embeddings, du reranking et du LLM.
Quels serveurs sont nécessaires au minimum ?
Le minimum officiel est un CPU à 4 cœurs, 16 Go de mémoire et 50 Go d’espace disque ; l’exécution du code nécessite gVisor, la GPU n’est pas indispensable pour démarrer, mais elle peut accélérer DeepDoc et les modèles locaux.
Est-ce que cela prend en charge les serveurs ARM ?
Les images Docker préconstruites officielles actuelles sont destinées à x86 et ne fournissent pas d’images ARM64 ; les utilisateurs ARM doivent les construire eux-mêmes selon la documentation, et certaines combinaisons Infinity ne sont pas encore officiellement prises en charge.
RAGFlow propose-t-il une API ?
Fournit une API REST, un SDK Python et un serveur MCP. La version cloud gratuite officielle ne fournit pas de clé API, tandis que les versions Starter et Pro la fournissent.
RAGFlow peut-il être utilisé à des fins commerciales ?
Il peut être utilisé, modifié et distribué sous la licence Apache 2.0, à condition de conserver la licence et les déclarations associées, ainsi que de respecter séparément les licences des modèles, des données et des composants tiers utilisés.
Numéro d’enregistrement de sécurité publique du Guangxi : 45132202000164