Anglais | 简体中文 | 日本語 | 한국어
? Qu’est-ce que RAGFlow ?
? Démo
? Dernières mises à jour
? Principales fonctionnalités
? Architecture du système
? Commencer
? Configurations
? Créer une image Docker sans intégrer de modèles
? Créer une image Docker incluant des modèles d'intégration
? Lancer le service à partir de la source pour le développement
? Documentation
? Feuille de route
? Communauté
? Contribuer
RAGFlow est un moteur RAG (Retrieval-Augmented Generation) open source basé sur une compréhension approfondie des documents. Il offre un flux de travail RAG rationalisé pour les entreprises de toute taille, combinant LLM (Large Language Models) pour fournir des capacités de réponse aux questions véridiques, soutenues par des citations bien fondées provenant de diverses données formatées complexes.
Essayez notre démo sur https://demo.ragflow.io.
04/11/2024 Mise à niveau des modèles DLA (Document Layout Analyse) dans deepdoc.
01/11/2024 Ajoute l'extraction de mots clés et la génération de questions associées au bloc analysé pour améliorer la précision de la récupération.
2024-09-13 Ajoute un mode de recherche pour les questions et réponses de la base de connaissances.
2024-09-09 Ajoute un modèle d'agent consultant médical.
2024-08-22 Prise en charge du texte dans les instructions SQL via RAG.
2024-08-02 Prend en charge GraphRAG inspiré du graphrag et de la carte mentale.
⭐️ Star notre référentiel pour rester à jour avec de nouvelles fonctionnalités et améliorations intéressantes ! Recevez des notifications instantanées pour les nouvelles versions ! ?
Extraction approfondie de connaissances basée sur la compréhension de documents à partir de données non structurées avec des formats complexes.
Trouve « une aiguille dans une botte de foin de données » de jetons littéralement illimités.
Intelligent et explicable.
De nombreuses options de modèles parmi lesquelles choisir.
Visualisation du découpage du texte pour permettre une intervention humaine.
Aperçu rapide des références clés et des citations traçables pour étayer les réponses fondées.
Prend en charge Word, les diapositives, Excel, txt, les images, les copies numérisées, les données structurées, les pages Web, etc.
L'orchestration RAG rationalisée s'adresse à la fois aux particuliers et aux grandes entreprises.
LLM configurables ainsi que des modèles d'intégration.
Rappel multiple associé à un reclassement fusionné.
API intuitives pour une intégration transparente avec l'entreprise.
CPU >= 4 cœurs
RAM >= 16 Go
Disque >= 50 Go
Docker >= 24.0.0 et Docker Compose >= v2.26.1
Si vous n'avez pas installé Docker sur votre ordinateur local (Windows, Mac ou Linux), consultez Installer Docker Engine.
Assurez-vous 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 sur 262144 :$ sudo sysctl -w vm.max_map_count=262144Cette modification sera réinitialisée après un redémarrage du système. Pour garantir que votre modification reste permanente, ajoutez ou mettez à jour la valeur
vm.max_map_count
dans /etc/sysctl.conf en conséquence :vm.max_map_count=262144
Clonez le dépôt :
$ git clone https://github.com/infiniflow/ragflow.git
Créez les images Docker prédéfinies et démarrez le serveur :
La commande ci-dessous télécharge l'image Docker de la version de développement pour RAGFlow slim (
dev-slim
). Notez que les images RAGFlow Slim Docker n'incluent pas de modèles d'intégration ni de bibliothèques Python et ont donc une taille d'environ 1 Go.
$ cd ragflow/docker $ docker compose -f docker-compose.yml up -d
REMARQUE : Une image RAGFlow Docker qui inclut des modèles d'intégration et des bibliothèques Python mesure environ 9 Go et peut prendre beaucoup plus de temps à charger.
Pour télécharger une image Docker RAGFlow slim d'une version spécifique, mettez à jour la variable RAGFlow_IMAGE
dans * docker/.env * vers la version souhaitée. Par exemple, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0-slim
. Après avoir effectué cette modification, réexécutez la commande ci-dessus pour lancer le téléchargement.
Pour télécharger la version de développement de l'image RAGFlow Docker, y compris les modèles d'intégration et les bibliothèques Python, mettez à jour la variable RAGFlow_IMAGE
dans docker/.env en RAGFLOW_IMAGE=infiniflow/ragflow:dev
. Après avoir effectué cette modification, réexécutez la commande ci-dessus pour lancer le téléchargement.
Pour télécharger une version spécifique de l'image RAGFlow Docker, y compris des modèles d'intégration et des bibliothèques Python, mettez à jour la variable RAGFlow_IMAGE
dans docker/.env vers la version souhaitée. Par exemple, RAGFLOW_IMAGE=infiniflow/ragflow:v0.13.0
. Après avoir effectué cette modification, réexécutez la commande ci-dessus pour lancer le téléchargement.
Vérifiez l'état du serveur une fois le serveur opérationnel :
$ docker logs -f serveur ragflow
Le résultat suivant confirme le lancement réussi du système :
____ ___ ______ ______ __ / __ / | / ____// ____// /____ _ __ / /_/ // /| | / / __ / /_ / // __ | | /| / / / _, _// ___ |/ /_/ // __/ / // /_/ /| |/ |/ / /_/ |_|/_/ |_|____//_/ /_/ ____/ |__/|__/ * Exécuté sur toutes les adresses (0.0.0.0) * Exécuté sur http://127.0.0.1:9380 * Exécuté sur http://xxxx:9380 INFO:werkzeug:Appuyez sur CTRL+C pour quitter
Si vous ignorez cette étape de confirmation et vous connectez directement à RAGFlow, votre navigateur peut provoquer une erreur
network abnormal
car, à ce moment-là, votre RAGFlow n'est peut-être pas complètement initialisé.
Dans votre navigateur Web, saisissez l'adresse IP de votre serveur et connectez-vous à RAGFlow.
Avec les paramètres par défaut, il vous suffit de saisir
http://IP_OF_YOUR_MACHINE
( sans numéro de port) car le port de service HTTP par défaut80
peut être omis lors de l'utilisation des configurations par défaut.
Dans service_conf.yaml, sélectionnez la fabrique LLM souhaitée dans user_default_llm
et mettez à jour le champ API_KEY
avec la clé API correspondante.
Voir llm_api_key_setup pour plus d'informations.
Le spectacle est lancé !
En ce qui concerne les configurations système, vous devrez gérer les fichiers suivants :
.env : conserve les configurations fondamentales du système, telles que SVR_HTTP_PORT
, MYSQL_PASSWORD
et MINIO_PASSWORD
.
service_conf.yaml : configure les services back-end.
docker-compose.yml : le système s'appuie sur docker-compose.yml pour démarrer.
Vous devez vous assurer que les modifications apportées au fichier .env sont conformes à celles du fichier service_conf.yaml.
Le fichier ./docker/README fournit une description détaillée des paramètres d'environnement et des configurations de service, et vous devez vous assurer que tous les paramètres d'environnement répertoriés dans le fichier ./docker/README sont alignés avec les configurations correspondantes dans le fichier service_conf.yaml. .
Pour mettre à jour le port de service HTTP par défaut (80), accédez à docker-compose.yml et remplacez 80:80
par <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/docker-compose.yml up -d
Cette image fait environ 1 Go et repose sur des services LLM et d'intégration externes.
clone git https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 installe huggingface-hub nltk python3 download_deps.py docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
Cette image fait environ 9 Go. Comme il inclut des modèles d’intégration, il s’appuie uniquement sur des services LLM externes.
clone git https://github.com/infiniflow/ragflow.gitcd ragflow/ pip3 installe huggingface-hub nltk python3 download_deps.py docker build -f Dockerfile -t infiniflow/ragflow:dev .
Installez Poetry, ou ignorez cette étape si elle est déjà installée :
curl -sSL https://install.python-poetry.org | python3 -
Clonez le code source et installez les dépendances Python :
git clone https://github.com/infiniflow/ragflow.gitcd ragflow/export POETRY_VIRTUALENVS_CREATE=true POETRY_VIRTUALENVS_IN_PROJECT=true~/.local/bin/poetry install --sync --no-root # installer les modules python dépendants de RAGFlow
Lancez les services dépendants (MinIO, Elasticsearch, Redis et MySQL) à l'aide de Docker Compose :
docker compose -f docker/docker-compose-base.yml up -d
Ajoutez la ligne suivante à /etc/hosts
pour résoudre tous les hôtes spécifiés dans docker/service_conf.yaml en 127.0.0.1
:
127.0.0.1 es01 mysql minio redis
Dans docker/service_conf.yaml , mettez à jour le port mysql vers 5455
et le port es vers 1200
, comme spécifié dans docker/.env .
Si vous ne pouvez pas accéder à HuggingFace, définissez la variable d'environnement HF_ENDPOINT
pour utiliser un site miroir :
exporter HF_ENDPOINT=https://hf-mirror.com
Lancer le service backend :
source .venv/bin/activateexport PYTHONPATH=$(pwd)bash docker/launch_backend_service.sh
Installez les dépendances frontales :
cd web npm installer --force
Configurez l'interface pour mettre à jour proxy.target
dans .umirc.ts vers http://127.0.0.1:9380
:
Lancer le service frontal :
npm exécuter le développement
Le résultat suivant confirme le lancement réussi du système :
Démarrage rapide
Guide d'utilisation
Références
FAQ
Voir la feuille de route RAGFlow 2024
Discorde
Gazouillement
Discussions sur GitHub
RAGFlow s'épanouit grâce à une collaboration open source. Dans cet esprit, nous acceptons diverses contributions de la communauté. Si vous souhaitez en faire partie, consultez d'abord nos directives de contribution.