Private GPT souverain
Vos équipes utilisent déjà l'IA, et le vrai enjeu est de savoir où elles le font. Faute d'outil interne, les collaborateurs collent des données de l'entreprise dans ChatGPT, Copilot ou Gemini. C'est le Shadow IA, et l'entreprise perd le contrôle de sa donnée. Private GPT ramène ces usages sous votre gouvernance, avec une IA centralisée souveraine hébergée en France, chat et interrogation de vos documents inclus.
Private GPT assemble deux briques open source, opérées pour vous par France Nuage :
- Open WebUI : l'interface de chat (équivalent ChatGPT), avec RAG pour interroger vos documents internes.
- vLLM Semantic Router : le routeur IA qui reçoit chaque requête et l'aiguille, par intention et par effort de raisonnement, vers un backend LLM local au client ou une IA cloud souveraine.
Aucune licence à payer sur les deux logiciels. France Nuage facture l'hébergement souverain managé et l'accompagnement.
À qui ça s'adresse
Aux organisations qui veulent offrir un assistant IA à leurs équipes sans exposer leur donnée à des plateformes soumises au droit américain, et qui manipulent des documents sensibles (cabinets comptables et juridiques, RH, santé, secteur public, ETI). Le RAG permet d'interroger une base documentaire interne, dont les documents restent stockés chez France Nuage.
Architecture
En pratique, la WebUI parle uniquement à la passerelle Envoy (API compatible OpenAI), qui consulte le Semantic Router (ExtProc) pour classer la requête et choisir la route. Le guard PII détecte les données personnelles ; une requête contenant un type de PII non autorisé est bloquée avant tout appel cloud (fail-closed), jamais laissée passer en clair. Seuls les types inscrits dans la liste d'autorisation (piiTypesAllowed, par défaut les adresses e-mail) peuvent atteindre la route cloud. La détection est un filtre qui réduit fortement le risque, sans le supprimer, car un classifieur peut manquer une donnée personnelle qu'il ne reconnaît pas. Les détections sont comptées dans les métriques du routeur (une journalisation par détection est en roadmap). Les embeddings des documents pour le RAG sont calculés sur le backend privé, et les documents comme leurs vecteurs (pgvector) restent stockés chez France Nuage. Quand une question passe par la route générale, les extraits retrouvés qui l'accompagnent partent vers Mistral avec elle, soumis au même filtre de données personnelles. Pour qu'aucun extrait ne quitte l'infrastructure, ces usages doivent être classés en route sensible (backend privé, fail-closed).
Le cluster France Nuage ne sert pas les poids des modèles (pas de GPU). Les deux services (Open WebUI, Semantic Router) sont des workloads CPU. L'inférence lourde est déléguée à des backends externes, un backend local/privé que vous fournissez (chat et embeddings) et Mistral La Plateforme (cloud souverain UE) sur votre compte.
Ce que fait le routage
| Type de requête | Route | Comportement |
|---|---|---|
| Sensible | Backend privé | Fail-closed : si le backend privé est indisponible, la requête échoue avec une erreur explicite. Jamais de bascule vers le cloud. |
| Général | Mistral La Plateforme (UE) | PII détectées ; une requête portant un type de PII non autorisé est bloquée avant l'envoi (fail-closed). Choix du modèle (small/large) selon l'effort de raisonnement. |
| RAG (documents) | Embeddings sur le backend privé | Les documents et leurs vecteurs restent stockés dans France Nuage (pgvector sur PostgreSQL). Les extraits retrouvés suivent la route de la question. |
Aucune défaillance n'est silencieuse. Une indisponibilité du backend privé sur une route sensible reste visible (erreur claire), et toute requête portant une PII non autorisée est bloquée avant le cloud plutôt que laissée fuir.
Gouvernance : votre charte IA devient une configuration
Une charte IA écrite dans un document ne s'applique que si quelqu'un la fait respecter. Dans Private GPT, ses règles deviennent des paramètres du service, appliqués à chaque requête.
- Les données sensibles restent en interne. La route privée fonctionne en fail-closed (
semanticRouter.failClosed). Si le backend privé tombe, la requête échoue au lieu de basculer vers le cloud. - Pas de données personnelles non autorisées dans une IA externe. Le guard PII (
semanticRouter.guards.pii.*) bloque avant l'appel cloud tout type de donnée personnelle absent de la liste d'autorisation. - Chaque équipe est identifiable. Nous recommandons une clé d'API distincte par équipe ou par application dès que d'autres outils que le chat se branchent sur la passerelle. Les clés par équipe et les plafonds de dépense par clé ne sont pas inclus en standard dans la version actuelle, et se mettent en place à la demande, lors du déploiement. En standard, la consommation est suivie par route et par modèle.
- Changer de modèle ou de fournisseur reste une affaire de configuration. Le changement se fait dans les
valuesdu tenant. Open WebUI, comme toute application qui appelle une API compatible OpenAI, n'a rien à modifier.
Ce principe s'étend à tous les usages IA de l'entreprise, au-delà du chat, avec une passerelle IA souveraine placée devant l'ensemble de vos applications.
Recommandations RSSI & DSI
Le Private GPT ne garantit la maîtrise de la donnée que si les accès aux IA publiques sont bloqués côté réseau. Sans ce blocage, les collaborateurs contournent l'outil et exposent la donnée de l'entreprise. France Nuage recommande aux RSSI/DSI :
- Bloquer au niveau DNS/proxy les domaines des IA publiques grand public (par exemple
chatgpt.com,chat.openai.com,gemini.google.com,claude.ai) et rediriger les usages vers le Private GPT interne. - Accompagner la bascule par de la formation, pour que les équipes adoptent l'outil interne plutôt que de le contourner.
- Superviser les tentatives d'accès résiduelles aux IA publiques.
Ce blocage relève du réseau du client. France Nuage fournit la liste recommandée des domaines et l'accompagnement au changement, mais n'opère pas ce blocage.
Un Private GPT déployé sans blocage des IA publiques laisse la porte ouverte au Shadow IA. La technique (hébergement souverain, détection et blocage des données personnelles) ne suffit pas seule. Elle doit être accompagnée d'une politique réseau et d'une conduite du changement.
Référence de configuration (values.yaml)
Chaque paramètre du chart porte une description, une unité, un défaut et des bornes ; la référence exhaustive est le values.yaml commenté du chart. Principales options :
Authentification
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
auth.sso.enabled | booléen | false | Active le SSO OIDC. Par défaut, auth Open WebUI native. |
auth.oidc.issuerUrl | url | aucun | Issuer de l'IdP client (ex. votre Nextcloud). |
auth.oidc.scopes | chaîne | openid email profile | Scopes OIDC demandés. |
Rétention & effacement
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
retention.chatsDays | entier ≥ 0 | 0 | Purge des chats après N jours. 0 = pas de purge. |
retention.ragDocsDays | entier ≥ 0 | 0 | Purge des documents RAG après N jours. 0 = pas de purge. |
retention.piiLogsDays | entier ≥ 0 | 90 | Rétention des logs de détection des données personnelles. |
Ces paramètres décrivent la politique de rétention cible. Dans ce lot, la purge automatique n'est pas encore active. L'effacement est manuel et documenté ; la purge programmée et l'effacement self-service sont en roadmap.
Routeur, guards et backends
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
semanticRouter.replicaCount | entier 1..4 | 2 | Le routeur est dans le chemin de chaque requête ; au moins 2 réplicas. |
semanticRouter.guards.pii.enabled | booléen | true | Active la détection PII sur la route cloud. |
semanticRouter.guards.pii.piiTypesAllowed | liste | [EMAIL_ADDRESS] | Types de PII tolérés vers le cloud. Un type détecté hors de cette liste bloque la route cloud (détection + blocage, pas de rédaction). |
semanticRouter.guards.pii.threshold | flottant 0..1 | 0.9 | Seuil de confiance du classifieur PII. |
semanticRouter.failClosed | booléen | true | Fail-closed global : guard PII ou backend privé indisponible sur une route sensible = erreur explicite, jamais de bascule cloud. |
semanticRouter.modelCache.size | Go (≥ 30) | 40Gi | Cache local des modèles du routeur (évite le re-téléchargement au redémarrage). |
Open WebUI et RAG
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
openWebui.rag.vectorStore | énum | pgvector | Magasin de vecteurs, sur le PostgreSQL CNPG. |
openWebui.rag.embedding.model | chaîne | bge-m3 | Modèle d'embeddings, servi par le backend privé. |
openWebui.limits.maxFileSizeMb | entier 1..1024 | 200 | Taille maximale par fichier. Rejet au-delà. |
openWebui.limits.maxFileCount | entier 1..1000 | 20 | Nombre maximal de fichiers par envoi. Rejet au-delà. |
openWebui.limits.maxDocsPerUser | entier ≥ 1 | 2000 | Plafond de documents par utilisateur. Indicatif (roadmap). |
openWebui.limits.maxCorpusMb | entier ≥ 1 | 20480 | Taille totale du corpus (20 Go par défaut). Indicatif (roadmap). |
openWebui.limits.allowedTypes | liste | [pdf, docx, txt, md, csv, xlsx] | Types de fichiers acceptés. Indicatif (roadmap). |
Seules la taille par fichier (maxFileSizeMb) et le nombre de fichiers par envoi (maxFileCount) sont appliquées par la plateforme, avec rejet au-delà. Le plafond de documents par utilisateur, la taille totale de corpus et les types de fichiers autorisés (allowedTypes) restent indicatifs dans ce lot (application produit en roadmap).
Conformité RGPD
Un outil qui traite les échanges des équipes et une base documentaire interne manipule des données personnelles. Private GPT est conçu pour rester sous RGPD, avec une résidence UE de bout en bout. Avant la mise en production d'un tenant réel, France Nuage applique une porte de contrôle go-live :
- DPA-type Mistral : le client contractualise un accord de sous-traitance (art. 28 RGPD) avec Mistral pour le leg cloud, résidence UE vérifiée.
- DPA-type France Nuage → client : France Nuage est sous-traitant (héberge les chats et les documents RAG). Un accord de sous-traitance est fourni en modèle.
- Registre des traitements (modèle) : finalités, catégories de données, durées de conservation (alignées sur
retention.*), destinataires (backend privé, Mistral). - Mentions RGPD dans l'interface et la documentation : information des utilisateurs, base légale, droits.
- Vérification de la résidence UE de l'endpoint Mistral et des sauvegardes (MinIO en France).
France Nuage agit comme sous-traitant. Vous restez responsable du traitement, et il vous revient à ce titre de choisir la base légale, de fixer les durées de conservation, de répondre aux demandes d'exercice des droits des personnes et de tenir votre registre des traitements. Les modèles fournis servent de point de départ.
Si l'assistant traite des données sensibles ou des données concernant des personnes vulnérables (mineurs, apprenants, patients), une analyse d'impact (AIPD, art. 35 RGPD) sera probablement exigée. Elle relève du responsable du traitement, et France Nuage fournit la documentation technique nécessaire pour la mener.
Le service est hébergé en France par une société française. Nous n'utilisons jamais vos échanges ni vos documents pour entraîner un modèle, et nos sous-traitants sont listés dans le contrat de sous-traitance (art. 28 RGPD).
Le client fournit sa propre clé d'API Mistral et paie ses tokens en direct, sur son propre compte. France Nuage ne refacture pas la consommation cloud.
Le leg cloud se paie au token. Les tâches à fort volume qui demandent peu de raisonnement (OCR, classification, reformulation) reviennent généralement moins cher sur le backend privé, dont le coût mensuel est fixe. Mesurez le nombre de tokens consommés par document pendant le pilote avant de trancher, car à faible volume la facturation au token peut rester la plus économique.
Ce que comprend le service managé
- Hébergement souverain managé des deux services sur le cloud français France Nuage.
- Support, mises à jour, sauvegardes et supervision. Les documents RAG uploadés sont sauvegardés ; consultez le guide des sauvegardes externalisées.
- Secrets chiffrés (clé Mistral du client, clé du backend privé, identifiants PostgreSQL, OIDC) gérés via SealedSecrets.
- Base de données PostgreSQL managée (CNPG, pgvector) ; voir le guide PostgreSQL managé.
- Accès au backend privé possible via un tunnel souverain ; voir le VPN Zero Trust Headscale.
Le diagnostic IT & IA, l'accompagnement des directions (CODIR/DG et DSI) et les formations sont assurés avec nos partenaires NoBullshit Conseil et Netir Academy, sur devis, hors forfait.
Souveraineté
Le leg cloud passe uniquement par Mistral La Plateforme (UE), sur le compte du client, sans aucun fournisseur américain par défaut. Les embeddings du RAG sont calculés en local, et les documents restent stockés dans France Nuage. Les deux logiciels sont open source, vous pouvez donc rapatrier le service sur votre propre infrastructure.
Démarrage
- Souscrivez depuis la page Private GPT ou la page des tarifs.
- Après souscription, l'onboarding démarre avec la clé Mistral de votre compte, l'endpoint de votre backend privé (via tunnel souverain), la signature des DPA et la validation de la porte go-live RGPD.
- France Nuage déploie, câble et supervise les deux services. Vous accédez à l'interface de chat et commencez à interroger vos documents.
Exploitation (runbook)
Opérations courantes du service managé, assurées par l'équipe France Nuage.
- Déploiement / mise à jour :
./deploy.sh <org> [env](idempotent). Une montée de version se fait en changeant les tags d'image dans lesvalues(Open WebUI, Semantic Router, Envoy) puis en rejouantdeploy.sh; jamais dehelm upgradedirect. - Rollback :
helm rollback <release>revient à la révision précédente. Pour la base, restauration ponctuelle CloudNativePG (PITR) depuis la sauvegarde S3. - Sauvegarde / restauration : la base Postgres est sauvegardée en continu vers S3 (MinIO, résidence UE) via CloudNativePG ; les documents RAG uploadés sont sauvegardés par velero. La restauration s'appuie sur ces deux sources.
- Bascule SSO : activer
auth.sso.enabledet renseigner le blocauth.oidc(issuer, client, secret) dans lesvaluesdu tenant, puis rejouerdeploy.sh. Le retour à l'auth native se fait en repassantauth.sso.enabledàfalse. - Supervision : les métriques du Semantic Router et d'Envoy sont scrapées et branchées au Grafana managé ; alertes sur la charge CPU des guards et les requêtes bloquées (fail-closed).