Dans les coulisses d'Atlas : un ChatGPT interne, souverain, branché sur vos données

Comment nous construisons Atlas : une IA souveraine posée sur votre documentation et vos systèmes, qui ne connaît que vos données et automatise les tâches répétitives. L'ingénierie réelle, expliquée simplement.

Dans les coulisses d'Atlas : un ChatGPT interne, souverain, branché sur vos données

Voici la phrase que nous répétons en rendez-vous, et qui résume ce que nous faisons :

On branche une IA souveraine sur votre documentation et vos systèmes existants, un ChatGPT interne qui ne connaît que vos données, puis on automatise les tâches répétitives par-dessus.

Atlas, c'est ça. Pas un chatbot de plus, pas un assistant générique : un ChatGPT d'entreprise, branché sur vos vraies données, qui répond juste et qui agit. Trois choses le séparent d'un ChatGPT ou d'un Claude grand public, et ce sont elles qui font toute la valeur :

  1. Il est connecté à vos données. Vos devis, vos plans, vos gammes, votre ERP. Pas l'internet.
  2. Il est souverain. Vous choisissez où vivent vos données et quel modèle les traite.
  3. Il agit. Au-delà de répondre, il déclenche des actions dans vos outils, via des fonctions que nous développons pour vous.

Cet article raconte comment nous le construisons. Pas la brochure : l'ingénierie réelle, mais expliquée pour que tout le monde suive.

1. Le problème : un ChatGPT générique ne connaît pas votre entreprise

Prenez une PME d'usinage de précision. Vingt ans d'affaires : des demandes de prix, des devis (souvent en trois versions), des plans scannés, des gammes de fabrication, des rapports de contrôle, des certificats matière, le tout en français, en allemand et en anglais. La moitié des documents sont des scans sans texte exploitable.

Quand un deviseur reçoit une nouvelle demande, sa question est simple : « Ai-je déjà fait une pièce proche, et à quel prix ? » Aujourd'hui, la réponse vit dans la tête de trois personnes et dans un dossier réseau que personne n'ose ranger.

Un ChatGPT grand public ne résout pas ça, pour trois raisons de fond. Il ne connaît pas vos données (il a lu l'internet, pas vos dossiers). Il n'est pas souverain (vos documents partiraient dans un cloud étranger). Et il ne fait qu'écrire du texte : il ne va pas chercher dans votre ERP, il n'ouvre pas un dossier d'affaire. Pire, quand il ne sait pas, il invente une réponse plausible. Dans l'industrie, une tolérance inventée ou une matière hallucinée, ce n'est pas une gêne : c'est une pièce non conforme, un lot au rebut, un client perdu.

C'est exactement le mur sur lequel butent la plupart des projets : pourquoi un ChatGPT Enterprise ne suffit pas, et pourquoi 80 % des POC d'IA ne passent jamais en production.

2. Ce qui sépare Atlas d'un ChatGPT

Mettons-le noir sur blanc. Voici la différence, point par point.

ChatGPT / Claude grand publicAtlas
Vos donnéesNe les connaît pasBranché sur vos devis, plans, gammes, ERP
SouverainetéDonnées envoyées dans un cloud étrangerHébergé où vous voulez : Europe, Suisse, ou chez vous
ActionsÉcrit du texte, c'est toutAgit : déclenche des fonctions dans vos outils
ConfianceInvente parfois, sans le direCite sa source, ou répond « je ne sais pas »

Les trois premières lignes sont nos trois piliers. Le reste de l'article les prend un par un : le socle de données (§3), la souveraineté (§4), et les fonctions (§5). C'est cette combinaison qui distingue un agent métier d'un assistant générique.

1 · Ingestion · hors-ligne, batchDocumentsPDF · scans · plansDoclingparse + OCR FR/DE/ENChunking+ description VisionEmbeddingsCohere v4 + BM25Qdrantcollection atlas_docs2 · Runtime · temps réelQuestionlangage naturelOrchestrateurpilote LLM + outilsOutilschercher · agirRéponse+ citationsERP Postgresrôle lecture seulesearch_corpus
Deux plans : l'ingestion transforme les documents en connaissance indexée ; le runtime laisse un agent décider quels outils appeler pour répondre.

Sur ce schéma, deux mondes. À gauche, l'ingestion : nous préparons vos documents une fois, hors ligne, pour les rendre interrogeables. À droite, le runtime : quand quelqu'un pose une question, un orchestrateur décide quoi faire, appelle les bons outils, et répond. Nous détaillons les deux ci-dessous.

3. Pilier 1 · Le socle de données

C'est notre force principale, et la partie que nous sous-estimons toujours. Un modèle d'IA, aussi bon soit-il, ne vaut rien sans les bonnes données sous la main. Le vrai travail, c'est de construire ce socle : transformer un fouillis de PDF, de scans et de tables ERP en une base propre, interrogeable, à jour.

3.1 Préparer les documents (l'ingestion)

Nous passons chaque document dans un pipeline en quatre étapes, rejouable à volonté.

manifest.jsonParseDocling · par pageChunktexte · table · planEmbeddense + sparseQdrantupsertPlan CAO scanné : en-tête de métadonnées+ description Vision (cotes, tolérances) verbatimContenu visuel décrit : 52 % → 100 % · plans invisibles remontés en position #1
Un batch idempotent piloté par un manifest. Le texte réellement indexé est dérivé à la volée : ré-enrichir le corpus revient à ré-embedder, sans re-parser.

En clair : nous lisons chaque document (avec reconnaissance de texte pour les scans, en français, allemand et anglais), nous le découpons en morceaux cohérents, nous transformons chaque morceau en une empreinte numérique que la machine sait comparer (un embedding), puis nous rangeons le tout dans une base spécialisée. Le découpage se fait par page, ce qui permettra plus tard de dire « page 3 » dans une réponse et d'ouvrir le PDF au bon endroit.

3.2 Le cas piégeux : les plans

Un plan scanné, pour une machine, c'est une image : aucun texte à l'intérieur. Posez une question sur une cote ou une tolérance, il ne remontait jamais. Nous avons réglé ça en deux temps. D'abord, nous étiquetons chaque plan avec ses métadonnées (référence de pièce, affaire, client) pour qu'il soit au moins retrouvable par sa référence. Ensuite, un modèle de vision lit le plan et en transcrit, mot à mot, les cotes, tolérances, matière, états de surface et le cartouche. Règle stricte : transcription fidèle, jamais d'invention ; un champ illisible reste vide.

3.3 Retrouver la bonne info, à tous les coups

Une fois les données rangées, encore faut-il retrouver la bonne au bon moment. Un système naïf cherche en ligne droite et se trompe en silence une fois sur trois. Atlas ajoute une couche qui se corrige toute seule, et ne dépense de l'effort supplémentaire que quand c'est nécessaire.

QuestionRecherche hybridedense + BM25 · RRF → rerankCouvertureHAUTE ?ouiChemin courtstop · < 6 snonMulti-query3-5 variantes → RRF → rerankHyDE (repli)réponse hypothétique → vecteurScopingpar affaire :filtre injectéavant rerank
Nous ne payons le surcoût du correctif que lorsque c'est nécessaire. La couverture (score de rerank) décide, seule, entre chemin court et escalade.

Concrètement : nous combinons deux façons de chercher (une par le sens de la question, une par les mots exacts comme une référence VLT-2024-0142), nous classons les résultats, et nous mesurons leur qualité. Si c'est net, nous répondons vite. Si c'est flou, nous escaladons : nous reformulons la question de plusieurs manières, et en dernier recours nous générons une réponse hypothétique juste pour mieux chercher. Nous ne nous contentons pas d'espérer que ça marche : nous le mesurons sur un jeu de 110 questions/réponses de référence, avec une garde anti-régression. Pour aller plus loin sur ces mécanismes : RAG, fine-tuning ou MCP, lequel choisir.

3.4 La confiance : chaque réponse est sourcée

Comme le socle est propre et traçable, Atlas peut faire ce qu'un ChatGPT générique ne fait pas : citer sa source. Chaque affirmation renvoie au document et à la page exacts, en un clic.

La cage cervicale VLT-2024-0142 est usinée en titane TA6V (Ti-6Al-4V), avec une tolérance de ±0.005 mm sur l'alésage central.

plan-technique-VLT-2024-0142.pdf, p.2devis-VLT-2024-0142-v3.pdf, p.1
Chaque affirmation factuelle porte une citation [document, page], cliquable, qui ouvre le PDF source à la bonne page. Sans source identifiable, Atlas répond « information non disponible ».

Et quand il n'y a pas de source ? Atlas le dit. « Information non disponible » est une réponse valide et souhaitable. Un système qui sait se taire est infiniment plus utile, en usine, qu'un système qui parle toujours.

4. Pilier 2 · La souveraineté

« Souverain » n'est pas un argument marketing chez nous, c'est une contrainte d'ingénierie. Le point clé : la couche Atlas est indépendante du modèle. Le modèle d'IA est une brique que nous remplaçons selon vos exigences. Nous proposons donc trois niveaux, du plus performant au plus fermé.

Niveau 1PerformanceMeilleurs modèlesdu marchéZDR · hébergé en EuropeNiveau 2Souverain suisseModèles open sourcehébergés en SuisseInfomaniakNiveau 3On-premiseLe modèle tourne survos serveursrien ne sortperformance maximalesouveraineté totale
La couche Atlas est agnostique : le modèle est une brique que nous remplaçons. Vous placez le curseur entre performance maximale et souveraineté totale.
  • Niveau 1 · Performance. Nous utilisons les meilleurs modèles du marché. Tous sont configurés en Zero Data Retention (aucune donnée conservée ni ré-entraînée) et hébergés en Europe. Le meilleur rapport qualité pour la plupart des cas.
  • Niveau 2 · Souverain suisse. Des modèles open source, hébergés en Suisse (chez Infomaniak par exemple). Vos données ne quittent pas le territoire, conformité nLPD par construction.
  • Niveau 3 · On-premise. Le modèle tourne directement sur vos serveurs. Rien ne sort de chez vous. Le niveau maximal, pour les données les plus sensibles.

La même logique vaut pour toutes les briques (recherche, base de données) : chacune a une variante auto-hébergeable. Nous choisissons ensemble le bon curseur entre performance et souveraineté. Nous creusons le sujet ici : LLM souverain pour la PME suisse et notre page Sécurité et souveraineté. Détail qui compte : même notre outil d'évaluation interne est souverain ; nous avons écarté les briques par défaut qui appellent un cloud américain.

5. Pilier 3 · Les fonctions : le vrai différenciateur

C'est le cœur du réacteur, et ce qui distingue vraiment Atlas d'un chatbot. Un ChatGPT répond. Atlas agit. Il ne se contente pas de générer du texte : il déclenche des fonctions, que nous appelons des outils, pour aller chercher une donnée, ouvrir un dossier, interroger l'ERP, ou remplir un formulaire. Sans ces outils, pas d'automatisation, pas de gain de temps réel.

messages+ message userstop_reason ?end_turnRéponse + citationsstreaming SSEtool_useExécution parallèleasyncio.gather · ~17 outilstool_resultErreur outil → tool_result is_error, jamais un crashPlafond atteint → meilleur partiel, marqué truncated
Une boucle tool-use maison sur l'API Messages brute : contrôle des gates, des citations, du streaming et de la souveraineté. Les outils d'un tour s'exécutent en parallèle.

Le principe est simple. À chaque question, un orchestrateur décide : est-ce que je peux répondre directement, ou dois-je appeler un outil ? Il peut en appeler plusieurs, en parallèle, puis reboucler avec les résultats. Une erreur d'un outil ne fait jamais planter l'ensemble : elle est traitée et l'agent continue.

5.1 Ce que chaque outil permet, concrètement

Voici les outils de base, et surtout ce qu'ils débloquent pour vos équipes :

L'outilCe que ça permet, concrètement
Chercher dans les documentsRetrouver une info précise dans des milliers de pages, avec la source. « Quelle matière pour la pièce X ? »
Ouvrir un dossier d'affaireReconstituer tout l'historique d'une affaire en une seule question.
Trouver des affaires similaires« Ai-je déjà fait une pièce proche, et à quel prix ? » La base d'un devis plus rapide et d'un SAV plus réactif.
Interroger l'ERPRépondre à une question chiffrée : marges, charge machine, délais réels.
Lire un document déposéExtraire les données utiles d'un PDF reçu (références, quantités, prix).
Écrire dans l'ERPSaisir ces données automatiquement, sous validation humaine.

5.2 Le vrai levier : des outils sur-mesure, par client

La liste ci-dessus, c'est le socle commun. Mais la valeur se cumule quand nous développons des outils propres à chaque client : brancher un logiciel de GPAO, générer un document type, remplir un tableau de suivi, préparer un dossier de contrôle. Chaque tâche répétitive de vos équipes peut devenir un outil.

C'est ça, la vraie signature d'Atlas : pas une fonctionnalité figée, mais une capacité à outiller votre métier, brique par brique. Et comme nous connectons l'IA à vos logiciels existants (voir nos intégrations), l'agent agit dans vos outils, pas à côté.

6. Exemple concret : brancher l'ERP

Un outil illustre bien le sujet : l'accès à l'ERP. Répondre à « quelles affaires sont en cours, et à quelle marge ? » demande d'aller lire des chiffres. Et parfois, d'en écrire. Les deux se font sous contrôle strict.

6.1 Lire : la sécurité est garantie par la base, pas par le modèle

Nous ne nous reposons jamais sur la bonne volonté du modèle. Même si sa requête était détournée, elle ne peut pas écrire : c'est la base de données elle-même qui l'interdit.

Requête ERPgénérée par le LLMtoujours viaRôle lecture seulePostgres · read-onlyimposé par la base· transaction read-only· timeout 5 s· SELECT uniquement· journal d'audit masqué✕ écriture bloquéeL'écriture échoue côté base
Nous ne faisons pas confiance à la bonne volonté du modèle : c'est la base de données qui interdit l'écriture. Même une requête détournée ne peut que lire.

L'outil se connecte toujours via un compte technique en lecture seule. Toute tentative d'écriture est refusée au niveau de la base. C'est de la sécurité par construction, pas de la confiance aveugle.

6.2 Écrire : l'humain valide, toujours

Atlas sait aussi remplir l'ERP : par exemple, saisir cent références article extraites d'un document déposé, une tâche fastidieuse et source d'erreurs. C'est le chemin le plus sensible, donc le plus encadré.

Utilisateurdépose un docAgentDRAFT-onlyPanneau revuevalidation humaineDBscopéextract_document (chaque champ sourcé)WriteProposal · sensitivity: commitvalide / corrige les décisions groupéescommit atomiquen° VLT-2026-NNNN assignés · audités [doc, page]
Agent qui propose, humain qui valide, base qui contraint. Un commit sans validation renvoie un 422 ; chaque écriture passe par un rôle Postgres au strict nécessaire.

Trois garde-fous non négociables. L'agent propose, il ne valide jamais seul. Un humain confirme les décisions groupées avant tout enregistrement (une confirmation manquante bloque l'opération). Et chaque écriture passe par un compte au strict minimum de droits, avec une traçabilité complète, champ par champ, source à l'appui. C'est cette combinaison, agent qui propose / humain qui valide / base qui contraint, qui rend l'automatisation démontrable sans être dangereuse.

7. Les garde-fous : pourquoi Atlas préfère se taire

Dans l'industrie, une valeur inventée coûte cher. Nous empilons donc plusieurs filets de sécurité contre l'invention, à des endroits différents.

System prompt strictun chiffre ne vient que d'un extrait cité ce tour-ci, ou de query_erpGrounding gate2ᵉ passe : chaque affirmation tracée à un extrait · fail-openFabrication guardréponse ≥ 200 car. sans outil ni citation → refus canoniqueRetrieval d'abordréparer le retrieval fait disparaître le gros de la fabricationCourt-circuit clarification2 affaires proches → Atlas demande, plutôt que deviner
Plusieurs couches, à des endroits différents du flux. Le garde-fou le plus efficace est, contre-intuitivement, un bon retrieval : l'agent n'invente que quand le bon extrait manque.

Un enseignement, obtenu par la mesure et non par l'intuition : le meilleur remède contre l'invention, c'est un bon socle de données. Quand nous avons réparé la recherche sur les documents difficiles (les plans), les réponses inventées ont chuté, tout simplement parce que l'agent n'invente que lorsqu'il ne trouve pas. Nous avons d'ailleurs résisté à la tentation de durcir le ton du modèle tant que nous ne pouvions pas mesurer l'effet : durcir à l'aveugle, c'est risquer de faire refuser des questions parfaitement légitimes.

8. Ce que nous retenons

Atlas n'est pas « un chatbot sur des PDF ». C'est un ChatGPT d'entreprise dont chaque brique sert les trois mêmes promesses :

  • Connecté à vos données. Nous construisons le socle : vos documents et vos systèmes deviennent une base propre, interrogeable, sourcée.
  • Souverain. Trois niveaux, du modèle du marché hébergé en Europe jusqu'au modèle installé chez vous. Vous choisissez le curseur.
  • Capable d'agir. Un registre d'outils, enrichi sur-mesure pour votre métier, qui transforme chaque tâche répétitive en automatisation.

Ce genre de système ne se bâtit pas en collant une API sur un moteur de recherche en un après-midi. Chaque garde-fou raconte un échec évité, mesuré, corrigé. C'est ça, une IA d'entreprise de production.