Guide Technique

Guide RAG Complet : Base de Connaissances pour Entreprise

Le RAG (Retrieval-Augmented Generation) est aujourd'hui la technologie clé pour connecter vos documents internes à un LLM. Ce guide couvre l'intégralité du pipeline — de la préparation des données jusqu'au monitoring en production — pour construire un système robuste et maintenable.

Guide RAG Complet : Base de Connaissances pour Entreprise

RAG basique vs RAG production : pourquoi la différence compte

La majorité des tutoriels RAG disponibles en ligne montrent la même chose : charger un PDF, le découper en chunks de 1000 caractères, stocker dans ChromaDB, interroger avec une recherche cosinus. En 50 lignes de Python, vous avez un prototype fonctionnel. Mais ce prototype a des limites critiques dès qu'on le confronte à de vraies données d'entreprise.

Un RAG basique souffre de plusieurs problèmes structurels :

  • Le chunking naïf coupe les phrases au milieu d'une idée, privant le LLM de contexte suffisant
  • La recherche cosinus seule manque les documents pertinents qui utilisent des termes différents (synonymes, abréviations)
  • Aucun mécanisme d'évaluation : impossible de savoir si les réponses sont fiables
  • Pas de gestion des mises à jour : re-indexation complète à chaque modification
  • Coûts non maîtrisés : chaque requête consomme des tokens inutiles

Un RAG production adresse chacun de ces points avec des techniques éprouvées. Le tableau ci-dessous résume les différences clés :

Dimension RAG basique RAG production
Chunking Fixe (1000 chars) Sémantique / hiérarchique
Retrieval Dense seul (cosinus) Hybride (dense + BM25) + reranking
Évaluation Manuelle ou absente RAGAS automatisé
Mises à jour Re-indexation complète Ingestion incrémentale
Monitoring Aucun Traces, latences, scores
Coûts Non maîtrisés Cache, batching, modèle adapté

Bon à savoir : 80 % des projets RAG qui échouent en production ont été construits avec des techniques "tutoriel" sans jamais être évalués quantitativement. Avant de déployer, mesurez toujours avec RAGAS ou un framework équivalent.

Architecture du pipeline RAG complet

Un pipeline RAG production se décompose en deux flux distincts qui fonctionnent de manière asynchrone : le pipeline d'ingestion (offline) et le pipeline de requête (online).

Pipeline d'ingestion (offline) :

  1. Source connectors : récupération depuis SharePoint, Confluence, Google Drive, S3, bases SQL
  2. Parsing : extraction du texte brut depuis PDF, DOCX, HTML (Unstructured.io, docling)
  3. Nettoyage : suppression des en-têtes/pieds de page répétitifs, déduplication
  4. Chunking : découpage intelligent avec métadonnées (source, date, section)
  5. Embedding : génération des vecteurs par batch
  6. Indexation : stockage dans le vector store + index BM25 pour le hybrid search

Pipeline de requête (online) :

  1. Query transformation : reformulation, expansion, HyDE si besoin
  2. Retrieval hybride : fusion dense + sparse
  3. Reranking : re-classement des K premiers résultats
  4. Context assembly : construction du prompt avec les chunks sélectionnés
  5. Generation : appel LLM avec le contexte enrichi
  6. Post-processing : citations, filtrage, formatage

Astuce AutomateIA : Séparez strictement le pipeline d'ingestion du pipeline de requête. L'ingestion peut être batchée la nuit ; la requête doit répondre en moins de 3 secondes. Cette séparation vous permet d'optimiser chacun indépendamment et de monitorer les SLA séparément.

Préparer les documents de votre entreprise

La qualité du RAG dépend à 70 % de la qualité des données d'entrée. Un pipeline technique parfait ne compensera jamais des documents mal structurés, redondants ou obsolètes.

Audit préalable du corpus : Avant toute ingestion, réalisez un inventaire de vos sources documentaires. Identifiez les types (PDF, DOCX, HTML, Markdown), les volumes, les langues, les niveaux de confidentialité et les fréquences de mise à jour. Ce travail prend généralement 1 à 2 jours mais conditionne l'ensemble du projet.

Nettoyage des PDF : Les PDF d'entreprise sont souvent issus de scans ou de conversions Word mal formatées. Utilisez Unstructured.io ou docling (open-source, excellent sur les documents français) pour l'extraction. Pour les PDF scannés, OCR obligatoire avec Tesseract ou Amazon Textract.

Problèmes courants à traiter :

  • En-têtes et pieds de page répétés à chaque page → supprimer avec des regex
  • Numéros de page dans le texte → nettoyer
  • Tableaux mal parsés → conserver en Markdown ou HTML structuré
  • Doublons de versions (v1, v2, v3 du même document) → ne garder que la version actuelle
  • Documents de plus de 3 ans sans révision → valider avec les métiers avant d'inclure

Attention : Les tableaux et figures dans les PDF sont souvent mal convertis en texte. Un tableau de tarifs mal parsé peut générer des réponses financièrement incorrectes. Vérifiez toujours la qualité du parsing sur un échantillon représentatif avant de lancer l'ingestion complète.

Enrichissement des métadonnées : Chaque document doit être enrichi de métadonnées structurées avant l'indexation : source, auteur, date de création, date de dernière révision, département, type de document, niveau de confidentialité. Ces métadonnées permettront le filtrage metadata dans les requêtes et faciliteront la maintenance.

Chunking avancé : au-delà du découpage naïf

Le chunking est l'étape qui détermine la granularité de votre index. Un mauvais chunking génère des chunks trop longs (trop de bruit pour le LLM) ou trop courts (perte de contexte pour le retrieval).

Chunking fixe (baseline) : Découpe à taille fixe (512 ou 1024 tokens) avec un overlap de 10-20 %. Simple à implémenter, mais coupe souvent les phrases au milieu d'une idée. Utile comme baseline de comparaison.

Chunking sémantique : Détecte les ruptures sémantiques dans le texte en comparant les embeddings de phrases consécutives. Quand la similarité chute significativement, on coupe. Produit des chunks de taille variable qui respectent mieux la structure logique du document. Disponible dans LangChain (SemanticChunker) et LlamaIndex.

Chunking hiérarchique (parent-child) : Crée deux niveaux de granularité — des petits chunks (256 tokens) pour le retrieval précis, et des chunks parents (1024-2048 tokens) pour la génération. Lors d'une requête, on cherche dans les petits chunks mais on fournit le chunk parent au LLM. Cette approche combine précision de retrieval et richesse de contexte.

Sliding window : Chunks qui se chevauchent fortement (50 % d'overlap) pour s'assurer qu'aucune information à la frontière entre deux chunks n'est perdue. Augmente le volume de l'index mais améliore le recall.

512
tokens — taille de chunk recommandée pour débuter (avec overlap 15%)

Recommandations pratiques : Pour des documents FAQ ou support, le chunking hiérarchique est souvent le plus performant. Pour des contrats ou documents juridiques longs, le chunking sémantique respecte mieux les clauses. Pour des articles ou documentation technique, 512 tokens avec overlap fonctionne bien comme point de départ.

Choisir son modèle d'embedding

Le modèle d'embedding transforme chaque chunk de texte en un vecteur dense. La qualité de ce vecteur détermine directement la précision du retrieval. Voici les principales options pour des corpus incluant du français :

Modèle Dimensions Multilingual Coût / 1M tokens Recommandé pour
OpenAI text-embedding-3-small 1536 Oui 0,02 $ Démarrage rapide, budget limité
OpenAI text-embedding-3-large 3072 Oui 0,13 $ Haute précision, corpus complexe
Cohere embed-multilingual-v3 1024 Oui (100+ langues) 0,10 $ Corpus multilingue, benchmark MTEB
BGE-M3 (BAAI) 1024 Oui Gratuit (self-hosted) Open-source, données confidentielles
mGTE-large 1024 Oui Gratuit (self-hosted) Alternative open-source performante

Bon à savoir : Une fois votre index créé avec un modèle d'embedding, changer de modèle nécessite de tout re-indexer. Choisissez bien dès le départ ou prévoyez ce coût dans votre feuille de route.

Pour du français pur, Cohere embed-multilingual-v3 surpasse généralement OpenAI sur les benchmarks MTEB. Pour des données sensibles on-premise, BGE-M3 via Hugging Face Inference Endpoints ou auto-hébergé avec FastEmbed est la meilleure alternative.

Vector stores pour la production : comparatif

Le vector store stocke vos embeddings et expose une interface de recherche de similarité. Le choix dépend de votre volume, de votre infrastructure existante et de vos contraintes de souveraineté des données.

Solution Type Points forts Limite Idéal pour
pgvector PostgreSQL extension Infrastructure mutualisée, SQL natif, ACID Performances limitées au-delà de 5M vecteurs PME, démarrage, <1M documents
Qdrant Dédié (Rust) Très performant, filtrage avancé, payload riche, cloud ou self-hosted Infrastructure supplémentaire Production robuste, besoin de filtrage complexe
Weaviate Dédié (Go) Hybrid search natif, GraphQL, modules intégrés Configuration plus complexe Hybrid search out-of-the-box
Pinecone SaaS managé Serverless, scalabilité automatique, zero-ops Données hébergées aux USA, coûts élevés à grande échelle Prototypage rapide, équipes sans ops
Chroma Local / léger Très simple, idéal pour le dev et les POC Pas conçu pour la production à grande échelle Développement, tests

Pour la grande majorité des PME et ETI françaises, pgvector est le meilleur point de départ. Si vous avez déjà PostgreSQL en production, ajoutez simplement l'extension. Pour un projet avec des besoins de filtrage avancé ou une volumétrie supérieure, migrez vers Qdrant qui offre le meilleur rapport performance/complexité opérationnelle.

Retrieval avancé : hybrid search et reranking

La recherche dense (cosinus) seule a un défaut majeur : elle peut rater des documents très pertinents si les mots-clés exacts ne sont pas bien représentés dans l'espace vectoriel. Le retrieval hybride combine la recherche dense avec une recherche sparse (BM25) pour obtenir le meilleur des deux mondes.

Comment fonctionne le hybrid search :

  1. La requête est envoyée simultanément à l'index dense (vecteurs) et à l'index BM25
  2. Chaque index retourne ses K meilleurs résultats (typiquement 20-50)
  3. Les scores sont normalisés puis fusionnés via RRF (Reciprocal Rank Fusion) ou une combinaison pondérée
  4. Le top-N résultats fusionnés est envoyé au reranker

Le reranking est l'étape souvent la plus impactante sur la qualité finale. Un reranker est un modèle cross-encoder qui évalue la pertinence de chaque document par rapport à la requête spécifique (contrairement aux bi-encoders des embeddings qui évaluent requête et document séparément). Les options principales :

  • Cohere Rerank : API managée, excellente qualité multilingual, facile à intégrer
  • BGE-reranker-v2-m3 : open-source, excellent multilingue, déployable en self-hosted
  • Colbert : efficace pour les longues requêtes, open-source

HyDE (Hypothetical Document Embeddings) : technique avancée où, avant de chercher dans l'index, on demande au LLM de générer une réponse hypothétique à la question. On embed cette réponse hypothétique et on l'utilise comme vecteur de recherche. Particulièrement efficace quand les questions sont courtes mais les documents longs.

Astuce AutomateIA : Implémentez d'abord le hybrid search, mesurez avec RAGAS, puis ajoutez le reranking. Dans la grande majorité des cas, le reranking apporte un gain de 15 à 30 % sur l'answer relevancy sans modifier le reste de l'architecture.

Évaluer la qualité avec le framework RAGAS

Sans évaluation quantitative, vous pilotez à l'aveugle. Le framework RAGAS (Retrieval Augmented Generation Assessment) fournit des métriques automatisées qui ne nécessitent pas de labels humains pour chaque exemple.

Les 4 métriques RAGAS essentielles :

  • Faithfulness : les affirmations de la réponse générée sont-elles toutes supportées par les chunks récupérés ? Cible : > 0.85
  • Answer Relevancy : la réponse est-elle pertinente par rapport à la question posée ? Cible : > 0.80
  • Context Recall : les chunks récupérés contiennent-ils l'information nécessaire pour répondre ? Cible : > 0.75
  • Context Precision : parmi les chunks récupérés, quelle proportion est vraiment utile ? Cible : > 0.70

Construire le jeu de test : Créez 50 à 100 paires question-réponse de référence couvrant les cas d'usage réels de vos utilisateurs. Impliquez les experts métier pour valider la pertinence des questions. RAGAS peut aussi générer automatiquement des questions à partir de vos documents pour accélérer cette étape.

Processus d'amélioration itératif :

  1. Mesurez le baseline avec votre configuration initiale
  2. Identifiez la métrique la plus faible
  3. Modifiez un seul paramètre à la fois (taille de chunk, nombre de chunks récupérés, modèle d'embedding)
  4. Re-mesurez et comparez
  5. Répétez jusqu'à atteindre vos cibles

Bon à savoir : Un context recall faible indique un problème de retrieval (chunking ou embedding à améliorer). Une faithfulness faible indique un problème de génération (le LLM hallucine malgré un bon contexte). Ces deux types de problèmes ont des remèdes différents — distinguez-les avant d'agir.

Déployer son RAG en production

Le déploiement d'un RAG production implique plusieurs composants qui doivent fonctionner de concert : le pipeline d'ingestion (souvent un job planifié), l'API de requête (temps réel), et les outils de monitoring.

Stack de déploiement recommandée pour une PME :

  • Ingestion pipeline : script Python + job cron, ou Airflow pour les pipelines complexes
  • API de requête : FastAPI + LangServe, conteneurisé avec Docker
  • Vector store : pgvector sur votre PostgreSQL existant ou Qdrant en conteneur
  • Monitoring : LangSmith pour les traces, Prometheus + Grafana pour les métriques système
  • Cache : Redis pour cacher les requêtes fréquentes et réduire les coûts LLM

Optimisations de performance :

  • Batching des embeddings : ne jamais embedder un document à la fois, grouper par lots de 100-500
  • Caching sémantique : les requêtes similaires retournent la réponse en cache (GPTCache ou Redis)
  • Streaming : utilisez le streaming LLM pour améliorer la perception de la latence par l'utilisateur
  • Async : le retrieval et la génération doivent être non-bloquants

💡 Besoin d'aide pour déployer votre RAG ?

AutomateIA accompagne les PME et ETI dans la construction de systèmes RAG production-ready, de la conception de l'architecture jusqu'au déploiement et au monitoring.

🚀 Obtenir mon audit gratuit

Maintenance et coûts réels

Un RAG production n'est pas un système "deploy and forget". Il nécessite une maintenance régulière pour rester pertinent et maîtriser les coûts.

Cycle de maintenance recommandé :

  • Hebdomadaire : ingestion des nouveaux documents, revue des requêtes ayant échoué (faible score de confiance)
  • Mensuelle : re-run du jeu de test RAGAS, analyse des tendances de performance
  • Trimestrielle : audit du corpus (documents obsolètes à retirer), évaluation des nouveaux modèles d'embedding

Estimation des coûts mensuels pour une PME (500 requêtes/jour, 10 000 documents) :

Poste Solution cloud Solution hybride (open-source LLM)
Embeddings (ingestion initiale) 5-15 € (one-shot) 0 € (self-hosted BGE)
Embeddings (mises à jour mensuelles) 2-5 €/mois 0 €/mois
LLM génération 80-200 €/mois (GPT-4o-mini) 50-100 €/mois (VPS GPU Mistral)
Reranker 20-40 €/mois (Cohere) 0 € (BGE-reranker self-hosted)
Infrastructure (VPS, BDD) 30-60 €/mois 80-120 €/mois (GPU inclus)
Total estimé 130-305 €/mois 130-220 €/mois

Astuce AutomateIA : Le cache sémantique est le levier de réduction de coûts le plus puissant. Dans un contexte support ou FAQ interne, 30 à 50 % des requêtes sont similaires à des requêtes déjà traitées. Un cache Redis sémantique avec GPTCache peut réduire votre facture LLM de moitié sur ce type de corpus.

Construire un système RAG production-ready est un projet de 2 à 4 semaines pour une équipe expérimentée, ou de 6 à 10 semaines pour une première mise en œuvre interne. L'investissement se justifie rapidement dès que vos équipes passent plus de 2 heures par semaine à rechercher de l'information dans vos bases documentaires — ce qui est le cas dans la quasi-totalité des PME à partir de 20 collaborateurs.

Si vous souhaitez être accompagné dans la mise en place de votre base de connaissances RAG, AutomateIA peut vous aider à définir l'architecture adaptée à vos contraintes, choisir les bons outils et déployer un système maintenable sur le long terme.

Questions fréquentes

Quelle est la différence entre RAG et fine-tuning ?
Le RAG injecte des documents externes au moment de l'inférence sans modifier le modèle, ce qui le rend idéal pour des bases de connaissances évolutives. Le fine-tuning modifie les poids du modèle pour lui inculquer un style ou des connaissances statiques. Pour la majorité des cas d'usage entreprise (FAQ, documentation interne, support), le RAG est plus économique, plus facile à maintenir et plus fiable.
Quelle taille de chunk recommandez-vous pour commencer ?
Commencez avec 512 tokens et un chevauchement (overlap) de 10 à 20 %. Pour des documents techniques longs (manuels, contrats), testez 1024 tokens. L'essentiel est de tester empiriquement : générez 20 questions test et mesurez le context recall avec RAGAS avant de choisir définitivement.
Faut-il obligatoirement une base vectorielle dédiée ou peut-on utiliser PostgreSQL ?
PostgreSQL avec l'extension pgvector est parfaitement adapté jusqu'à plusieurs millions de vecteurs. C'est souvent le meilleur point de départ pour une PME : vous mutualisez l'infrastructure existante, réduisez les coûts et simplifiez le déploiement. Les bases dédiées (Pinecone, Qdrant) deviennent pertinentes au-delà de 10 millions de vecteurs ou pour des besoins de scalabilité horizontale extreme.
Combien coûte un système RAG en production ?
Un RAG pour une PME avec 10 000 documents et 500 requêtes par jour coûte généralement entre 150 et 400 euros par mois en cloud (embeddings + LLM + infrastructure). Avec des modèles open-source (BGE + Mistral) auto-hébergés sur un VPS GPU, le coût peut descendre à 80-150 euros mensuels. L'essentiel du coût provient du LLM de génération, pas des embeddings.
Comment gérer les documents confidentiels dans un RAG ?
Implémentez un filtrage metadata strict : chaque document est taggué avec un niveau de confidentialité et les requêtes filtrent selon les droits de l'utilisateur connecté. Ne jamais stocker des documents de différents niveaux de sensibilité dans le même index sans isolation. Pour les données très sensibles, privilegiez un déploiement on-premise avec des modèles open-source.
Le RAG fonctionne-t-il avec des documents en français ?
Oui, mais le choix du modèle d'embedding est crucial. OpenAI text-embedding-3-small et Cohere embed-multilingual-v3 gèrent très bien le français. Pour du open-source, mGTE-large ou BGE-M3 sont les meilleures options multilingues. Évitez les modèles entraînés uniquement sur de l'anglais pour des corpus majoritairement français : la qualité de retrieval sera significativement dégradée.
Comment mettre à jour la base de connaissances sans tout recalculer ?
Implémentez une ingestion incrémentale basée sur un hash de contenu : seuls les documents modifiés ou nouveaux sont re-embeddés. Conservez un registre (table SQL ou fichier JSON) associant chaque document à son hash, sa date d'ingestion et ses chunk IDs. Lors d'une mise à jour, supprimez les anciens chunks du document et réindexez les nouveaux.
Quelle est la différence entre LangChain et LlamaIndex pour le RAG ?
LlamaIndex est spécialisé dans l'ingestion et le retrieval de documents — son écosystème de connecteurs, de readers et de techniques de chunking est plus riche pour les cas RAG purs. LangChain est plus généraliste et mieux adapté à l'orchestration d'agents complexes. Pour un RAG pur sur des documents internes, LlamaIndex est souvent le choix le plus efficace ; LangChain si vous intégrez le RAG dans un agent plus large.
🎯
Découvrez votre potentiel d'automatisation

Répondez à 5 questions — obtenez votre score et 3 recommandations personnalisées en 2 minutes

⚡ Résultat immédiat 🔒 Sans engagement
Lancer l'audit express

Prêt à automatiser votre entreprise ?

Obtenez un audit gratuit de vos processus en 48h. Nos experts identifient les opportunités d'automatisation et estiment votre ROI potentiel.

Sans engagement · Réponse sous 24h · 100% gratuit