---
title: "Créer un RAG privé avec Ollama et Qdrant : architecture et déploiement"
description: "Découvrez comment construire un RAG privé avec Ollama et Qdrant pour interroger les documents d’une PME sans les transmettre à une IA publique."
canonical_url: "https://www.internetcreatif.fr/actualite/rag-prive-ollama-qdrant/"
markdown_url: "https://www.internetcreatif.fr/actualite/rag-prive-ollama-qdrant.md"
language: "fr-FR"
author: "internet"
date_published: "2026-08-03T17:38:42+00:00"
date_modified: "2026-08-10T12:51:47+00:00"
content_type: "article"
---

# Créer un RAG privé avec Ollama et Qdrant : architecture et déploiement

## À retenir

- Un RAG privé utilise Ollama pour exécuter des modèles locaux (embeddings et génération) et Qdrant comme base vectorielle sécurisée, permettant aux PME de consulter leurs documents internes sans les exposer à des IA externes.
- La confidentialité absolue exige de vérifier chaque étape du workflow (stockage, modèles, sauvegardes, accès réseau) pour bloquer toute transmission involontaire vers l’extérieur, même si les outils sont déployés localement.
- Les documents doivent être préparés méthodiquement : extraits des éléments parasites, découpés en passages contextuels avec titres/sections conservés, et enrichis de métadonnées précises (ID, source, date) pour une recherche fiable.
> Comment construire un RAG privé avec Ollama et Qdrant ?

Une entreprise peut vouloir interroger ses procédures, ses contrats ou sa documentation sans envoyer ces informations à un service d’intelligence artificielle public. Un RAG privé répond à ce besoin en combinant un modèle local avec une base documentaire contrôlée. Ollama exécute les modèles nécessaires à l’analyse de la question et à la rédaction de la réponse, tandis que Qdrant retrouve les extraits les plus proches du sujet demandé. Cette architecture reste cependant plus complexe qu’une simple conversation avec un modèle. Il faut préparer les documents, générer leurs représentations vectorielles, organiser les droits d’accès et afficher les sources utilisées. Voyons comment construire progressivement un système RAG local, fiable et exploitable par une PME. Internet Creative Center conçoit des assistants documentaires dans le cadre de son activité d’[agence IA à Dijon](https://www.internetcreatif.fr/agence-ia-dijon/), avec des architectures locales, privées ou hybrides.
## Comprendre le rôle d’Ollama et de Qdrant dans un RAG privé

![2026-08-03-191442_Krea2_Center v2.0 INT8 Convrot - Krea2_1606485580](https://www.internetcreatif.fr/wp-content/uploads/2026/08/2026-08-03-191442_Krea2_Center-v2.0-INT8-Convrot-Krea2_1606485580.png)

RAG signifie *Retrieval-Augmented Generation*, ou génération augmentée par la recherche. Au lieu de demander au modèle de répondre uniquement à partir des connaissances acquises pendant son entraînement, le système commence par rechercher des informations dans les documents autorisés de l’entreprise. Les extraits retrouvés sont ensuite ajoutés à la consigne envoyée au modèle. Celui-ci rédige sa réponse à partir de la question de l’utilisateur et du contexte documentaire qui lui a été fourni. Un RAG privé peut ainsi permettre à une PME de poser des questions sur : - ses procédures internes ;
- ses notices techniques ;
- ses contrats et modèles de documents ;
- ses catalogues de produits ou de formations ;
- sa documentation commerciale ;
- ses règles de sécurité ;
- ses comptes rendus et archives autorisées.

 Dans cette architecture, **Ollama et Qdrant remplissent deux fonctions différentes**. ### Ollama exécute les modèles localement

 Ollama permet d’installer et d’interroger des modèles sur un ordinateur ou un serveur local. Après son installation, son API est disponible par défaut à l’adresse `http://localhost:11434/api`. Elle propose notamment des fonctions de génération de texte et de création d’embeddings. Deux types de modèles peuvent être utilisés dans un RAG : - **un modèle d’embedding**, chargé de transformer les textes en vecteurs numériques ;
- **un modèle de langage**, chargé de comprendre la consigne et de rédiger la réponse finale.

 Les embeddings représentent le sens d’un texte sous la forme d’une série de nombres. Deux passages proches par leur signification doivent produire des vecteurs proches, même s’ils n’utilisent pas exactement les mêmes mots. La documentation d’Ollama présente les embeddings comme une capacité destinée à la recherche sémantique, à la récupération d’informations et aux systèmes RAG. Ollama propose pour cela le point d’accès `/api/embed`. Il accepte un texte ou une liste de textes et renvoie les vecteurs correspondants. Parmi les modèles d’embedding présentés dans sa documentation figurent notamment `embeddinggemma`, `qwen3-embedding` et `all-minilm`. Le modèle de génération reçoit ensuite la question et les passages retrouvés. L’API `/api/generate` permet de lui transmettre un modèle, une consigne, un message système et différentes options de génération. ### Qdrant organise et recherche les connaissances

 Qdrant est une base de données vectorielle. Les informations y sont organisées dans des **collections**. Une collection contient des points, et chaque point associe un vecteur à des métadonnées facultatives appelées *payload*. Tous les vecteurs d’une même collection doivent respecter la dimension et la métrique définies pour celle-ci. Dans un RAG, un point Qdrant peut correspondre à un passage extrait d’un document. Son vecteur représente le sens du passage, tandis que son payload conserve les informations nécessaires pour l’identifier. Un payload peut, par exemple, contenir : ```
{ "document_id": "procedure-sauvegarde-2026", "title": "Procédure de sauvegarde", "section": "Restauration", "source": "/documents/securite/sauvegarde.pdf", "access_group": "informatique", "updated_at": "2026-07-15", "text": "Texte du passage indexé..." }
```

 Lorsque l’utilisateur pose une question, celle-ci est transformée en vecteur avec le même modèle d’embedding que celui utilisé pour les documents. Qdrant compare ce vecteur à ceux présents dans la collection et renvoie les passages les plus proches. Le fonctionnement général peut être résumé ainsi : ```
Documents de l’entreprise ↓ Extraction et nettoyage ↓ Découpage en passages ↓ Embeddings avec Ollama ↓ Vecteurs et métadonnées dans Qdrant ↓ Question de l’utilisateur ↓ Embedding de la question avec Ollama ↓ Recherche des passages dans Qdrant ↓ Question + passages envoyés au modèle Ollama ↓ Réponse accompagnée de ses sources
```

 Le RAG comporte donc deux circuits. Le premier est un circuit d’**indexation**, exécuté lorsque des documents sont ajoutés ou modifiés. Le second est un circuit de **recherche et de génération**, exécuté à chaque question. Cette distinction est importante. Une question ne doit pas entraîner la lecture complète de tous les documents. Le système interroge l’index vectoriel et transmet uniquement quelques passages au modèle. ### Ce que signifie réellement « privé »

 Le caractère privé ne dépend pas seulement de la présence d’Ollama et de Qdrant sur un serveur local. Tous les composants doivent être examinés : extraction des documents, modèle d’embedding, modèle de génération, interface, historiques, sauvegardes et outil d’automatisation. Un système présenté comme local peut encore transmettre des données à l’extérieur si un connecteur, une fonction de télémétrie, une API ou une étape du workflow appelle un service distant. Avant le développement, la PME doit donc établir une cartographie simple : - où sont stockés les documents d’origine ;
- où sont créés les fichiers temporaires ;
- quel service génère les embeddings ;
- où Qdrant conserve ses données ;
- quel modèle produit la réponse ;
- où sont enregistrées les conversations ;
- quels flux réseau sortants sont autorisés.

 Un RAG véritablement privé est une architecture dans laquelle l’entreprise contrôle l’ensemble de ce parcours, et pas seulement le modèle de langage. L’installation d’Ollama, de Qdrant et de l’interface métier peut s’inscrire dans une démarche plus globale visant à[déployer une IA locale dans une PME](https://www.internetcreatif.fr/actualite/deployer-ia-locale-pme-dijon/).
## Indexer les documents et construire le premier workflow de recherche

![2026-08-03-191419_Krea2_Center v2.0 INT8 Convrot - Krea2_4205901180](https://www.internetcreatif.fr/wp-content/uploads/2026/08/2026-08-03-191419_Krea2_Center-v2.0-INT8-Convrot-Krea2_4205901180.png)

La qualité d’un RAG dépend moins du nombre de documents ajoutés que de leur préparation. Une base contenant plusieurs milliers de pages mal classées peut fournir de moins bons résultats qu’une collection réduite, cohérente et régulièrement mise à jour. ### Installer les deux services

 Ollama peut fonctionner sous Linux, Windows et macOS. Sur un serveur Linux, il peut être exécuté comme un service et interrogé par une application Python, JavaScript, Streamlit, n8n ou une autre interface interne. Son API locale utilise par défaut le port `11434`. Qdrant peut être lancé sous forme de conteneur, d’exécutable ou de service administré. Pour le développement, sa documentation présente notamment une installation locale avec stockage persistant. L’API HTTP utilise généralement le port `6333` et l’interface gRPC le port `6334`. Une interface graphique est également disponible à l’adresse locale `http://localhost:6333/dashboard`. Elle permet de consulter les collections, les points et la console de l’API. Pour un prototype, les deux services peuvent fonctionner sur la même machine. En production, leur séparation dépend du nombre d’utilisateurs, des volumes, des sauvegardes et de la puissance nécessaire au modèle de langage. ### Sélectionner les documents autorisés

 La première collection ne doit pas contenir l’ensemble du serveur de fichiers. Il est préférable de choisir un seul domaine documentaire : procédures informatiques, catalogue de formations, documentation produits ou règles internes. Chaque document doit être associé à un responsable, une date de mise à jour et un niveau d’accès. Les brouillons, doublons et anciennes versions doivent être écartés ou clairement identifiés. Un fichier ne doit pas être indexé uniquement parce qu’il est techniquement accessible. Il doit être autorisé pour l’usage prévu et pour les personnes qui interrogeront la collection. ### Extraire et nettoyer le contenu

 Le pipeline d’indexation récupère le texte des fichiers PDF, DOCX, pages HTML, bases de données ou autres sources retenues. Il doit supprimer les éléments qui n’apportent aucune connaissance utile, comme les menus répétés, les pieds de page, les boutons ou les blocs de navigation. Le nettoyage doit toutefois préserver la structure du document : - le titre principal ;
- les titres de section ;
- les paragraphes ;
- les listes ;
- les tableaux utiles ;
- les références et dates importantes.

 La perte des titres peut rendre les passages difficiles à interpréter. Une phrase comme « elle doit être renouvelée tous les six mois » n’a plus de sens si le système ignore qu’elle se trouve dans une section consacrée à une clé de sécurité. ### Découper les documents en passages

 Un document complet est généralement trop long pour constituer un seul point. Il doit être découpé en passages suffisamment courts pour permettre une recherche précise, mais assez longs pour conserver le contexte. Il n’existe pas de taille parfaite pour tous les documents. Une procédure courte peut être découpée par section, tandis qu’un contrat ou un manuel technique peut nécessiter des fragments plus fins. Une stratégie raisonnable consiste à : - respecter autant que possible les titres et les paragraphes ;
- éviter de couper une phrase ou une liste en deux ;
- conserver une légère zone de chevauchement entre deux passages ;
- ajouter le titre du document et de la section à chaque fragment ;
- tester plusieurs tailles sur des questions réelles.

 Des passages trop courts perdent leur contexte. Des passages trop longs mélangent plusieurs sujets et transmettent au modèle des informations qui ne répondent pas directement à la question. ### Générer les embeddings avec Ollama

 Les passages nettoyés peuvent être envoyés par lots au point d’accès `/api/embed`. L’API d’Ollama accepte un tableau de textes, ce qui évite d’effectuer une requête distincte pour chaque fragment. ```
POST http://localhost:11434/api/embed { "model": "embeddinggemma", "input": [ "Premier passage du document", "Deuxième passage du document", "Troisième passage du document" ] }
```

 La réponse contient un vecteur pour chaque passage. La dimension dépend du modèle d’embedding. La collection Qdrant doit être créée avec une dimension compatible, car les vecteurs d’une même collection doivent partager la même structure. Le modèle d’embedding choisi doit être conservé pour l’indexation et pour les questions. Changer de modèle modifie l’espace vectoriel et impose généralement de recalculer les embeddings des documents dans une nouvelle collection. ### Enregistrer les points dans Qdrant

 Chaque passage devient un point composé d’un identifiant, d’un vecteur et d’un payload. Qdrant accepte des identifiants numériques ou des UUID. Le payload doit conserver au minimum : - le texte du passage ;
- l’identifiant du document ;
- le titre ;
- la source ou le chemin ;
- la section ;
- la date de mise à jour ;
- le groupe d’accès ;
- un numéro de page lorsque celui-ci est disponible.

 Ces métadonnées servent à afficher les sources, supprimer une ancienne version, filtrer les résultats et vérifier la fraîcheur d’une réponse. Il est également utile de conserver une empreinte du contenu. Lors d’une nouvelle indexation, cette empreinte permet de savoir si le passage a réellement changé. Le système évite ainsi de réinsérer continuellement les mêmes documents. ### Transformer la question en recherche

 Lorsqu’un utilisateur pose une question, le workflow suit plusieurs étapes : 1. authentifier l’utilisateur ;
2. déterminer les collections et catégories auxquelles il peut accéder ;
3. transformer la question en embedding avec Ollama ;
4. interroger Qdrant avec ce vecteur ;
5. appliquer les filtres correspondant aux droits et au contexte ;
6. récupérer quelques passages et leurs métadonnées ;
7. construire la consigne adressée au modèle de génération ;
8. afficher la réponse et ses sources.

 Qdrant permet d’ajouter des conditions portant sur le payload ou l’identifiant d’un point. Ces filtres peuvent notamment sélectionner une catégorie, une langue, une date, un site ou un groupe documentaire. Un utilisateur appartenant au groupe « communication » pourrait ainsi interroger les contenus publics et marketing, tandis que les procédures d’administration seraient réservées au groupe « informatique ». Le filtre Qdrant ne remplace cependant pas l’authentification. L’application doit empêcher l’utilisateur d’interroger directement l’API avec un autre filtre. ### Construire une consigne qui limite les inventions

 Le modèle ne doit pas recevoir une instruction vague comme « réponds à la question ». Le prompt doit lui indiquer comment utiliser les extraits et comment réagir lorsque ceux-ci ne suffisent pas. ```
Tu réponds uniquement à partir du contexte fourni. Si le contexte ne contient pas la réponse, indique que l’information n’a pas été trouvée dans les documents autorisés. N’invente ni procédure, ni date, ni chiffre. Cite les numéros des sources utilisées. QUESTION : {question} CONTEXTE : [Source 1] {passage_1} [Source 2] {passage_2} [Source 3] {passage_3}
```

 Le contexte et la question sont ensuite envoyés au modèle de langage par l’API de génération d’Ollama. La réponse de l’API contient le texte produit ainsi que des mesures permettant de suivre la durée de chargement, le nombre de jetons analysés et le temps de génération. L’application doit conserver la liste exacte des passages transmis. Elle pourra ainsi afficher le titre, la page et le lien vers le document d’origine sous la réponse. L’hébergement du modèle et de la base vectorielle doit être choisi selon la sensibilité des documents et après avoir comparé[l’IA locale et les services comme ChatGPT pour les données confidentielles](https://www.internetcreatif.fr/actualite/ia-locale-chatgpt-donnees-confidentielles/).
## Sécuriser, tester et maintenir le RAG avant son utilisation en production

![2026-08-03-191355_Krea2_Center v2.0 INT8 Convrot - Krea2_3132427888](https://www.internetcreatif.fr/wp-content/uploads/2026/08/2026-08-03-191355_Krea2_Center-v2.0-INT8-Convrot-Krea2_3132427888.png)

Un prototype RAG peut fonctionner en quelques heures. Le transformer en outil fiable pour une entreprise demande davantage de travail. Les principales difficultés concernent les accès, la qualité des documents, les sauvegardes et l’évaluation des réponses. ### Ne pas exposer directement Ollama et Qdrant sur Internet

 L’API d’Ollama écoute par défaut sur l’environnement local. Il est préférable de conserver ce service derrière l’application métier plutôt que d’ouvrir directement son port à tous les utilisateurs. Le cas de Qdrant demande une attention particulière. La documentation officielle précise qu’une instance auto-hébergée ne dispose par défaut ni d’authentification ni de chiffrement. Toute personne pouvant atteindre son interface peut alors lire, modifier ou supprimer les données. Qdrant recommande de sécuriser l’instance avant de la connecter à un réseau. Une installation privée doit donc prévoir au minimum : - un pare-feu limitant les machines autorisées ;
- une clé d’API pour les accès à Qdrant ;
- un chiffrement TLS lorsque les échanges quittent la machine locale ;
- des clés distinctes selon les usages ;
- un compte en lecture seule pour les applications qui n’indexent aucun document ;
- une interface d’administration inaccessible aux utilisateurs ordinaires.

 Qdrant propose des clés d’administration, des clés en lecture seule et des mécanismes permettant de limiter les permissions à certaines collections. Les mots de passe, clés privées et secrets d’infrastructure ne doivent pas être indexés. Même si le serveur est local, leur présence dans la base augmente les conséquences d’un compte compromis ou d’une erreur de filtrage. ### Séparer les collections et les droits

 Une seule collection contenant tous les documents de l’entreprise peut devenir difficile à sécuriser et à maintenir. Il peut être préférable de séparer les connaissances par site, métier, niveau de confidentialité ou cycle de vie. Une PME peut, par exemple, utiliser les collections suivantes : - `documents_publics` ;
- `procedures_internes` ;
- `documentation_technique` ;
- `ressources_humaines` ;
- `produits_et_catalogues`.

 La séparation physique des collections ne dispense pas d’utiliser des filtres. Elle réduit cependant le risque qu’une simple erreur de métadonnée ouvre l’accès à un domaine entièrement différent. ### Créer un jeu de questions de référence

 Un RAG ne doit pas être évalué uniquement avec deux ou trois démonstrations préparées à l’avance. Il faut constituer un jeu de questions représentatif des demandes réelles. Ce jeu peut comporter : - des questions dont la réponse est clairement présente ;
- des formulations différentes pour une même information ;
- des questions nécessitant plusieurs passages ;
- des questions dont la réponse n’existe pas ;
- des demandes portant sur un document interdit à l’utilisateur ;
- des questions utilisant un terme métier ou un acronyme ;
- des documents comportant des versions contradictoires.

 Pour chaque test, l’entreprise doit vérifier séparément : - si Qdrant a retrouvé les bons passages ;
- si le modèle a respecté les passages fournis ;
- si les sources affichées sont exactes ;
- si les droits d’accès ont été appliqués ;
- si le système a su reconnaître l’absence d’information.

 Cette distinction permet de localiser les erreurs. Lorsque les mauvais passages remontent, il faut revoir l’indexation, les embeddings, les filtres ou le découpage. Lorsque les bons passages sont présents mais que la réponse reste incorrecte, il faut examiner le prompt ou le modèle de génération. ### Prévoir les mises à jour et suppressions

 Les documents évoluent. Une procédure peut être remplacée, un produit retiré ou un salarié demander la suppression d’une donnée. Le pipeline doit pouvoir retrouver tous les points associés à un document et les supprimer avant d’insérer sa nouvelle version. Le champ `document_id` joue ici un rôle essentiel. Il permet de regrouper les différents passages provenant du même fichier et d’éviter la coexistence silencieuse de plusieurs versions. Le système peut surveiller les dates de modification ou les empreintes de fichiers. Il ne réindexe alors que les documents ajoutés, modifiés ou supprimés. Lorsque plusieurs sources contiennent des informations incompatibles, le RAG ne doit pas décider arbitrairement laquelle est correcte. Les documents doivent être hiérarchisés ou validés par leur responsable avant l’indexation. ### Sauvegarder les données et les configurations

 La sauvegarde doit couvrir les documents d’origine, le stockage Qdrant, les paramètres des collections, le code du pipeline, les prompts, la configuration d’Ollama et les secrets nécessaires au redémarrage. Qdrant fournit un système de snapshots permettant d’exporter et de restaurer une collection avec ses vecteurs, ses identifiants, ses payloads et les structures nécessaires à la recherche. La documentation recommande les snapshots pour restaurer efficacement une collection complète. Une copie ne doit pas rester uniquement sur le serveur qui héberge Qdrant. Il faut prévoir une sauvegarde séparée et tester régulièrement une restauration. Pour une installation Qdrant en conteneur, la documentation souligne également l’importance du stockage persistant, de la configuration de sécurité, de la supervision et d’une stratégie de sauvegarde et de reprise. ### Surveiller les performances et les échecs

 Les temps de réponse peuvent varier selon la taille du modèle, la quantité de contexte, le nombre d’utilisateurs et les ressources disponibles. Ollama fournit dans ses réponses des mesures de chargement, d’analyse du prompt et de génération qui peuvent alimenter un tableau de supervision. Le tableau de suivi peut afficher : - le temps total de réponse ;
- le temps de recherche dans Qdrant ;
- le temps de génération avec Ollama ;
- le nombre de passages transmis ;
- les réponses sans source ;
- les erreurs d’indexation ;
- les documents devenus inaccessibles ;
- l’espace disque utilisé ;
- la mémoire vive et la mémoire vidéo consommées.

 Un outil comme n8n peut orchestrer l’ajout des documents, leur indexation et certains workflows. Qdrant dispose désormais d’un nœud officiel pour n8n, avec une configuration de l’adresse de l’instance et de sa clé d’API. Les traitements lourds doivent toutefois être séparés des questions interactives. Une réindexation massive ne devrait pas saturer le serveur au moment où les utilisateurs interrogent l’assistant. ### Conserver une validation humaine

 Un RAG améliore l’accès à l’information, mais ne transforme pas automatiquement chaque réponse en vérité. Le modèle peut interpréter incorrectement un passage, rapprocher deux informations qui ne devraient pas l’être ou produire une conclusion plus affirmative que les sources. Pour les usages importants, l’interface doit afficher les sources et demander une validation avant l’envoi d’un courriel, la publication d’un contenu, la modification d’une fiche client ou l’application d’une procédure. Le premier objectif d’un RAG privé n’est donc pas d’automatiser toutes les décisions. Il est de réduire le temps nécessaire pour retrouver, comprendre et exploiter les connaissances autorisées de l’entreprise.
## Conclusion

Construire un RAG privé avec Ollama et Qdrant demande d’organiser plusieurs composants complémentaires. Ollama transforme les documents et les questions en embeddings, puis exécute le modèle chargé de produire la réponse. Qdrant stocke les vecteurs, les passages et leurs métadonnées afin de retrouver rapidement le contexte utile. La qualité du système dépend toutefois de tout ce qui entoure ces deux outils. Les documents doivent être sélectionnés, nettoyés, découpés et associés à des sources fiables. Les utilisateurs doivent être authentifiés et ne pouvoir interroger que les collections correspondant à leurs droits. Le déploiement doit commencer par un périmètre limité. Une première collection documentaire et quelques dizaines de questions de référence suffisent pour vérifier la pertinence de la recherche, la qualité des réponses et la bonne application des accès. Avant une mise en production, l’entreprise doit sécuriser les API, protéger les clés, organiser les sauvegardes, tester les restaurations et surveiller les performances. Une instance Qdrant auto-hébergée ne doit notamment jamais être exposée sur le réseau avec sa configuration par défaut. Le résultat attendu n’est pas un chatbot capable de répondre à tout. Un bon RAG privé sait retrouver les bons documents, afficher ses sources et reconnaître lorsqu’il ne dispose pas d’une information suffisante. **Internet Creative Center accompagne les PME de Dijon et de Bourgogne-Franche-Comté dans la création de systèmes RAG locaux associant Ollama, Qdrant, n8n et des interfaces adaptées aux métiers.** Découvrez notre approche sur la page [Agence IA à Dijon](/agence-ia-dijon/) afin de définir les documents, les droits d’accès et l’architecture nécessaires à votre assistant privé.  ### Autres ressources utiles

 - [Découvrir les usages métier possibles pour une PME](https://www.internetcreatif.fr/actualite/cas-usage-ia-pme-bourgogne-franche-comte/)
- [Encadrer un RAG privé et les autres systèmes d’IA avec l’AI Act](https://www.internetcreatif.fr/actualite/preparer-entreprise-ai-act/)
