🧠 Créer un RAG 🔒 Local & souverain ✅ Guide pas à pas 2026

Comment Créer un RAG : le Guide Pas à Pas (Local et Souverain)

✍️ Équipe SovreAI 📅 Août 2026 🏷️ RAG · IA locale · Embeddings · Ollama ⏱ 15 min de lecture

Un modèle d'IA ne connaît pas vos documents : posez-lui une question sur votre documentation interne, et il invente une réponse. Le RAG résout ce problème en lui fournissant vos documents au moment de la question — sans réentraînement, et sans que ces documents quittent votre infrastructure.

Ce guide explique comment créer un RAG de A à Z, étape par étape, dans une version 100 % locale : vos données restent chez vous. Accessible que vous soyez développeur ou non.

⚡ L'essentiel

Créer un RAG revient à assembler trois briques, toutes exécutables en local : un modèle d'embedding (qui transforme le texte en vecteurs), une base vectorielle (qui stocke et recherche), et un LLM local (qui rédige la réponse). Le processus se découpe en deux phases : une indexation de vos documents faite une fois, puis une recherche + génération à chaque question. Quatre décisions déterminent la qualité : taille des chunks, modèle d'embedding, nombre de passages récupérés, et type de recherche.


Qu'est-ce qu'un RAG, et pourquoi en créer un ?

Un RAG (Retrieval-Augmented Generation, ou génération augmentée par récupération) est une technique qui permet à un modèle de langage de répondre à partir de vos documents. Au lieu d'espérer que le modèle « connaisse » vos données, le système va chercher les passages pertinents dans votre base documentaire et les injecte dans le prompt. Le modèle rédige alors sa réponse à partir de ce contexte, en citant ses sources.

Nous détaillons le concept dans notre article interroger vos documents avec une IA locale. Ici, on passe à la pratique : comment le construire. Mais d'abord, un rappel utile — le RAG n'est pas la solution à tout.

Votre besoinLa bonne approche
Répondre à partir de vos documents internes, wiki, procéduresRAG
Exploiter des données qui changent souventRAG
Imposer un style, un ton, un format de réponsePrompt engineering, fine-tuning
Agir : envoyer un email, créer un ticket, mettre à jour une ficheAgent IA + outils
Ancrer des connaissances générales durables dans le modèleFine-tuning

Trois qualités expliquent pourquoi le RAG s'est imposé pour exploiter des données propriétaires. Il est à jour : la base se met à jour indépendamment du modèle. Il est vérifiable : la réponse cite ses sources, l'utilisateur remonte au document d'origine. Et il est économe : pas de réentraînement, juste trois briques exécutables en local — donc conforme au RGPD par construction, puisque rien ne sort de votre infrastructure.

L'architecture d'un RAG : deux phases distinctes

Avant de construire, il faut comprendre qu'un RAG fonctionne en deux temps qui ne s'exécutent pas au même moment. C'est le modèle mental le plus important à avoir en tête.

📥 Phase 1 — Indexation

Une fois, puis à chaque mise à jour · hors ligne
  1. Collecter le contenu (PDF, Markdown, pages web)
  2. Nettoyer le texte (retirer le HTML, normaliser)
  3. Découper en chunks de quelques centaines de mots
  4. Encoder chaque chunk en vecteur (embedding)
  5. Stocker les vecteurs dans une base vectorielle

La phase d'indexation est un traitement par lots : elle prépare vos documents à l'avance. La phase de recherche s'exécute, elle, à chaque question de l'utilisateur. Comprendre cette séparation évite bien des confusions dans la suite.

Les 4 décisions qui déterminent la qualité

Avant même d'écrire une ligne de code, quatre choix pèsent plus que tous les autres sur la qualité de votre RAG. Les garder en tête dès le départ évite des refontes coûteuses.

1

La taille des chunks

Trop petits, les morceaux perdent leur sens ; trop grands, leur signal se dilue et noie l'information utile. Quelques centaines de mots avec un léger recouvrement entre chunks voisins est le bon point de départ.

2

Le modèle d'embedding

C'est lui qui décide si deux textes « se ressemblent ». Un modèle inadapté à votre langue fait échouer la recherche en amont de tout le reste. Pour un RAG en français, choisissez impérativement un modèle d'embedding multilingue.

3

Le nombre de passages récupérés (top-K)

Combien de chunks on injecte dans le prompt. Trop peu, on rate l'information ; trop, on noie le modèle sous le bruit. Une poignée de passages bien choisis vaut mieux qu'une vingtaine au hasard.

4

Le type de recherche

La recherche sémantique seule rate les termes exacts (codes, références, noms propres). La combiner à une recherche par mots-clés — la recherche hybride — améliore nettement les résultats sur des documents techniques.

Collecter et préparer vos documents

Tout commence par un corpus propre. C'est l'étape la plus négligée, et pourtant la qualité de votre index en dépend entièrement : des documents mal extraits produisent une recherche incohérente, quelle que soit la suite.

Collecter consiste à rassembler vos sources : PDF, fichiers Word, pages d'un wiki interne, exports Markdown. Nettoyer consiste ensuite à retirer ce qui parasite le texte — balises HTML résiduelles, en-têtes et pieds de page répétés, caractères d'encodage cassés. Un PDF converti brutalement en texte contient souvent des numéros de page et des sauts de ligne au milieu des phrases : à nettoyer avant d'aller plus loin.

⚠️ Règle d'or « Garbage in, garbage out. » Un corpus sale donnera toujours un RAG médiocre, même avec les meilleurs modèles. Investissez du temps ici : c'est le meilleur retour sur effort de tout le projet.

Découper les documents en chunks (le chunking)

Un LLM ne peut pas ingérer un document de 80 pages d'un coup — et de toute façon, on ne veut lui donner que les passages pertinents. Le chunking découpe chaque document en morceaux digestes.

La stratégie la plus courante pour débuter est le découpage récursif : on coupe en respectant la structure (paragraphes, phrases) plutôt qu'au milieu des mots, avec une taille cible de quelques centaines de mots. Le point crucial est le recouvrement (overlap) : chaque chunk reprend les dernières lignes du précédent, pour ne pas perdre le contexte à la frontière entre deux morceaux.

Python — chunking récursif
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,        # taille cible (caractères)
    chunk_overlap=100,     # recouvrement entre chunks
    separators=["\n\n", "\n", ". ", " "]
)
chunks = splitter.split_text(mon_document)

Pour aller plus loin, le chunking sémantique découpe selon le sens (changements de sujet) plutôt que selon une taille fixe. Plus fin, mais plus complexe : gardez-le pour une v2.

Générer les embeddings en local

Un embedding transforme un texte en une liste de nombres (un vecteur) qui capture son sens. Deux textes proches par le sens ont des vecteurs proches dans l'espace — c'est ce qui permet la recherche par similarité. C'est le cœur du RAG.

La plupart des tutoriels utilisent l'API d'embedding d'OpenAI. Problème : vos documents partent alors chez OpenAI. Pour un RAG souverain, on génère les embeddings en local avec Ollama, grâce à un modèle dédié comme nomic-embed-text — gratuit, rapide, et qui ne fait sortir aucune donnée.

Terminal + Python — embeddings locaux
# Télécharger le modèle d'embedding
ollama pull nomic-embed-text

# En Python, générer un embedding
import ollama
vecteur = ollama.embeddings(
    model='nomic-embed-text',
    prompt='Le texte de mon chunk à encoder'
)

Ce modèle fonctionne bien en multilingue, donc pour du français. Pour installer Ollama et comprendre son fonctionnement, suivez notre guide complet d'installation d'Ollama.

🚫 Le piège n°1 à ne jamais commettre Ne changez jamais de modèle d'embedding après avoir créé votre base vectorielle sans tout réindexer. Chaque modèle produit des vecteurs dans un espace mathématique différent : mélanger deux modèles rend la recherche incohérente et produit des résultats aberrants. Si vous changez de modèle, réencodez l'intégralité de vos documents.
Vous voulez un RAG sur vos documents, sans monter tout ça vous-même ?

Notre audit gratuit évalue votre cas et vous propose une architecture RAG souveraine clé en main.

Audit gratuit →

Stocker les vecteurs dans une base vectorielle

Une fois vos chunks transformés en vecteurs, il faut les ranger dans une base vectorielle — une base de données spécialisée dans la recherche par similarité. C'est elle qui, à chaque question, retrouvera les vecteurs les plus proches en quelques millisecondes.

Trois options locales reviennent selon votre besoin :

BaseIdéale pourParticularité
FAISSPrototyper viteBibliothèque en mémoire, très rapide, sans serveur
ChromaDBDéveloppementBase embarquée, simple à prendre en main
QdrantProductionServeur robuste, filtres avancés, montée en charge

Pour un premier RAG, ChromaDB offre le meilleur compromis simplicité/fonctionnalités. Toutes ces bases s'installent et tournent sur votre infrastructure, sans aucun appel externe.

Rechercher et générer la réponse

C'est le moment où tout s'assemble. À chaque question de l'utilisateur, le système enchaîne : encoder la question (avec le même modèle d'embedding que pour les documents — c'est impératif), rechercher les chunks les plus proches dans la base, les injecter dans le prompt, et laisser le LLM local rédiger la réponse.

Python — recherche et génération
# 1. Encoder la question (même modèle qu'à l'indexation)
q_vec = ollama.embeddings(model='nomic-embed-text',
                          prompt=question)

# 2. Récupérer les K chunks les plus proches
chunks = base_vectorielle.search(q_vec, top_k=4)

# 3. Construire le prompt avec le contexte
contexte = "\n\n".join(chunks)
prompt = f"""Réponds à la question en utilisant UNIQUEMENT
le contexte ci-dessous. Si la réponse n'y est pas,
dis-le clairement.

Contexte :
{contexte}

Question : {question}"""

# 4. Générer la réponse avec un LLM local
reponse = ollama.chat(model='mistral',
    messages=[{'role': 'user', 'content': prompt}])

La consigne « utilise UNIQUEMENT le contexte » est essentielle : elle bride le modèle pour qu'il ne réponde pas de mémoire (donc n'invente pas) quand l'information n'est pas dans vos documents. C'est votre premier garde-fou contre les hallucinations.

Ajouter une interface (avec ou sans code)

Un RAG en ligne de commande, c'est bien pour tester. Pour le rendre utilisable par vos équipes, il lui faut une interface de chat. Deux chemins selon votre profil.

Option développeur : une API + une interface web

Vous exposez votre RAG via une API (avec FastAPI par exemple) et branchez une interface de chat dessus. Contrôle total, personnalisation complète, mais du développement à prévoir.

Option sans code : Open WebUI

Si vous ne voulez pas coder, Open WebUI offre une interface façon ChatGPT dans laquelle vous déposez vos documents, et le RAG se fait automatiquement, en local, connecté à Ollama. C'est le moyen le plus rapide d'avoir un RAG fonctionnel sur vos documents sans écrire une ligne de code — nous détaillons cette approche dans notre guide RAG avec Open WebUI.

✅ Notre conseil Commencez par Open WebUI pour valider l'intérêt sur vos documents en une après-midi. Si le besoin se confirme et demande de la personnalisation (droits d'accès fins, intégration à vos outils), passez à une solution sur mesure. Inutile de coder un RAG complet pour découvrir qu'un outil clé en main suffisait.

Aller plus loin : recherche hybride, reranking, évaluation

Votre premier RAG fonctionne, mais répond parfois à côté ? Trois techniques font passer un RAG « correct » à « fiable ».

La recherche hybride combine la recherche sémantique (par le sens) avec une recherche par mots-clés (BM25). La première capte les reformulations, la seconde rattrape les termes exacts — codes produits, références légales, noms propres — que le sémantique seul manque. C'est souvent le gain de qualité le plus rentable.

Le reranking ajoute une deuxième passe : après avoir récupéré une vingtaine de chunks candidats, un second modèle spécialisé les réordonne par pertinence réelle, et on ne garde que les meilleurs. Ça élimine le bruit avant la génération.

Enfin, l'évaluation : sans mesure, vous pilotez à l'aveugle. Constituez un jeu d'une trentaine de questions dont vous connaissez les bonnes réponses, et mesurez à chaque modification si votre RAG s'améliore ou régresse. C'est ce qui distingue un RAG bricolé d'un RAG maîtrisé.

Les pièges courants à éviter

Ces erreurs reviennent systématiquement sur un premier RAG. Les connaître à l'avance vous fera gagner des heures.

ErreurConséquenceCorrection
Chunks trop grosEmbeddings dilués, réponses flouesQuelques centaines de mots par chunk
Pas de recouvrementContexte perdu entre deux chunksRecouvrement léger entre chunks voisins
Recherche sémantique seuleRate les codes et termes exactsAjouter une recherche par mots-clés (hybride)
Prompt trop permissifLe modèle invente hors contexte« Réponds uniquement à partir du contexte »
Documents mal nettoyésRecherche incohérenteNettoyer le corpus avant d'indexer
Changer d'embedding sans réindexerRésultats aberrantsRéencoder toute la base après changement
Aucune métriqueImpossible de mesurer un progrèsÉvaluer sur un jeu de questions test

Créer son RAG soi-même ou se faire accompagner ?

Monter un RAG de démonstration est à la portée de tout développeur motivé, et Open WebUI permet même de s'en passer pour un premier test. Mais un RAG fiable, en production, connecté à vos outils, avec gestion des droits d'accès et évaluation continue, demande de l'expertise.

La question n'est pas « est-ce difficile ? » mais « où voulez-vous mettre votre temps ? ». Si le RAG est un projet stratégique pour votre PME — assistant sur vos procédures, support technique sur vos manuels, recherche dans vos contrats — un accompagnement vous fait gagner des semaines et vous évite les pièges ci-dessus. Et surtout, il garantit que toute l'architecture reste souveraine : vos documents ne quittent jamais votre infrastructure, contrairement aux solutions RAG cloud clés en main qui les envoient sur des serveurs tiers.

🎯 À retenir

  • Un RAG assemble trois briques locales : modèle d'embedding, base vectorielle, LLM.
  • Deux phases : indexation (une fois) et recherche + génération (à chaque question).
  • Quatre décisions dominent : taille des chunks, embedding, top-K, type de recherche.
  • Pour un RAG français, exigez un modèle d'embedding multilingue.
  • Générez vos embeddings en local (Ollama + nomic-embed-text) pour rester souverain.
  • Open WebUI permet un premier RAG sans coder ; le sur-mesure vient ensuite.

FAQ — Créer un RAG

Pas nécessairement. Pour un premier RAG sur vos documents, une solution comme Open WebUI connectée à Ollama permet de déposer vos fichiers et d'obtenir un assistant fonctionnel sans écrire de code. Le développement devient utile pour un RAG en production, personnalisé et intégré à vos outils métier.

Oui, et c'est même recommandé pour des données sensibles. Les trois briques d'un RAG — modèle d'embedding, base vectorielle, LLM de génération — existent toutes en version locale (Ollama, ChromaDB ou Qdrant, modèles open source). Aucune donnée ne quitte alors votre infrastructure, ce qui rend le RAG conforme au RGPD par construction.

Un modèle multilingue, sinon la recherche échoue sur des textes en français. Des modèles comme nomic-embed-text, exécutables en local via Ollama, gèrent bien le multilingue. L'essentiel est d'utiliser le même modèle pour indexer vos documents et pour encoder les questions — sinon la recherche est incohérente.

Le RAG donne au modèle accès à des connaissances (vos documents, des données à jour) ; le fine-tuning change son comportement (ton, style, format). En cas de doute, commencez par le RAG : moins coûteux, sans réentraînement, il couvre la majorité des besoins d'entreprise.

Il les réduit fortement en ancrant la réponse dans des passages réels et vérifiables, mais ne les élimine pas totalement. Un prompt strict (« réponds uniquement à partir du contexte ») et une évaluation régulière sur un jeu de questions restent indispensables pour fiabiliser le système.

Avec un outil sans code comme Open WebUI, un premier RAG sur vos documents se monte en une après-midi. Un RAG développé sur mesure, avec API, base vectorielle et interface personnalisée, demande plutôt quelques jours à quelques semaines selon le niveau d'intégration et de fiabilité visé.

Un RAG souverain sur vos documents, sans prise de tête

SovreAI conçoit et déploie votre système RAG sur votre propre infrastructure : vos documents ne sortent jamais, la conformité est native. Notre audit gratuit évalue votre cas et vous propose une feuille de route.