Cloud & on-prem

Vos systèmes IA déployés là où vos contraintes l'exigent, jusque dans votre infrastructure. L'agent agit sur vos outils, et quand le modèle et le serveur MCP tournent dans votre périmètre, aucune donnée n'en sort.

La souveraineté n'est pas une option pour tout le monde. Je déploie sur votre cloud quand la vitesse prime, et directement dans votre infrastructure quand vos données ne doivent jamais sortir. Modèles open-source privés, hébergement UE: c'est votre périmètre qui décide.

Repères

on-prem

modèles et serveur MCP dans votre infra

UE

hébergement souverain, hors Cloud Act US

0

donnée hors de votre périmètre, par conception

Cloud & on-prem

Ce que je construis

01

Serveur MCP souverain

Vos CRM, e-mails, bases et outils branchés à l'agent via un serveur MCP qui tourne chez vous ou sur un cloud UE. Couplé à un modèle privé ou hébergé en UE, l'agent lit, décide et exécute sur place : ni vos documents ni vos requêtes ne partent chez un tiers. Je cadre avec vous où doit tourner le modèle pour que la promesse tienne vraiment.

MCP · On-prem · Souveraineté · Cloud UE

02

On-prem & modèles privés

Des modèles open-source déployés dans votre infrastructure : vos données ne quittent jamais votre périmètre, ni pour répondre, ni pour agir, ni pour entraîner quoi que ce soit.

On-prem · Open-source · Modèles privés · Sécurité

03

Déploiement UE & industrialisation

Mise en production scalable et monitorée sur un cloud UE ou votre cloud (AWS, GCP, Azure, Vercel), avec CI/CD, versioning et mises à jour sans coupure. Je vérifie où tournent vraiment vos modèles, pas seulement le logo sur la facture.

Cloud UE · CI/CD · MLOps · Zero-downtime

La promesse

Vos données restent chez vous, même quand l'agent agit.

Démonstration

Aiguillage local d'une demande contenant une donnée patient

Un groupe hospitalier privé veut un assistant qui retrouve ses procédures internes depuis les postes de soins. Une partie des demandes cite des données de patients, et celles-là ne doivent jamais quitter le réseau de l'établissement.

Cas inventéCe cas n'est pas une mission. Il est inventé de bout en bout, et le code plus bas est le vrai code qui le ferait tourner.

  1. HumainDemande depuis le service

    Le patient IPP 4417832, entré hier en cardiologie, prend un anticoagulant. Quelle est la procédure interne avant une endoscopie digestive ?

  2. L'agentClassement de la demande

    Je lis la demande avant de choisir un modèle. Le motif IPP suivi de sept chiffres déclenche la règle identifiant_patient. Destination : local, aucune sortie réseau. Sans ce motif, la règle procedure_generique aurait envoyé la demande dehors : c'est la seule qui autorise la sortie, et elle exige l'absence de tout motif patient. Une demande qu'aucune règle ne classe reste locale par défaut.

    Aucune demande ne part dehors parce que personne n'a pensé à écrire le motif qui la retient.

  3. Appel d'outilAppel du modèle local

    {
      "outil": "assistant_procedures.repondre",
      "regle_appliquee": "identifiant_patient",
      "motif_declencheur": "IPP 4417832",
      "destination": "local",
      "hote": "gpu-01.intra.etablissement",
      "sortie_reseau": false,
      "requete": {
        "texte": "Le patient IPP 4417832, entré hier en cardiologie, prend un anticoagulant. Quelle est la procédure interne avant une endoscopie digestive ?",
        "service_demandeur": "cardiologie",
        "profil": "infirmier"
      },
      "corpus": [
        "procedures_soins",
        "protocoles_endoscopie"
      ],
      "seuil_similarite": 0.62
    }
  4. Retour de l'outilPassages retrouvés sur site

    {
      "statut": "ok",
      "calcul": {
        "lieu": "salle serveur de l'etablissement",
        "hote": "gpu-01.intra.etablissement",
        "sortie_reseau": false
      },
      "passages": [
        {
          "document": "PROC-END-014",
          "version": "4.2",
          "section": "Arret des anticoagulants",
          "similarite": 0.81
        },
        {
          "document": "PROC-END-014",
          "version": "4.2",
          "section": "Delai avant geste",
          "similarite": 0.74
        }
      ],
      "sections_absentes": [
        "Relais par heparine"
      ],
      "sous_le_seuil": [
        {
          "document": "PROC-CARD-007",
          "section": "Fonction renale",
          "similarite": 0.41
        }
      ],
      "document_a_revalider": {
        "reference": "PROC-END-014",
        "revision_depassee": true
      }
    }

    Le champ sections_absentes existe pour que la réponse puisse dire ce qu'elle ne trouve pas.

  5. Appel d'outilÉcriture de la trace

    {
      "outil": "audit.consigner",
      "evenement": "requete_assistant",
      "consigne": {
        "horodatage": "2026-09-03T08:41:12+02:00",
        "regle_appliquee": "identifiant_patient",
        "destination": "local",
        "sortie_reseau": false,
        "service_demandeur": "cardiologie",
        "empreinte_requete": "sha256:9c2d41ab7e0f5b83",
        "documents_consultes": [
          "PROC-END-014"
        ]
      },
      "jamais_consigne": {
        "champs": [
          "texte_requete",
          "identifiant_patient",
          "date_naissance",
          "reponse_generee"
        ],
        "raison": "le journal prouve l'aiguillage, il ne rejoue pas le dossier"
      },
      "conservation_jours": 365
    }

    La trace prouve qu'une demande n'est pas sortie. Elle ne permet pas de reconstituer qui était le patient.

  6. Réponse rendueRéponse rendue au service

    La procédure PROC-END-014, version 4.2, demande l'arrêt de l'anticoagulant avant le geste, avec un délai qui dépend de la molécule. Le relais par héparine n'est pas couvert par ce document : je ne l'invente pas, appelez le cardiologue de garde. Une section sur la fonction rénale existe dans un autre document, sous le seuil de similarité : je ne la reprends pas. Le calcul a eu lieu sur le serveur de l'établissement, la demande n'est pas sortie du réseau. Le document a dépassé sa date de révision, faites confirmer la version avant le geste.

Le codepolitique-aiguillage.yamlyaml

La politique d'aiguillage que lit la passerelle

version: 3
politique: assistant-procedures-internes

destinations:
  local:
    moteur: modele-sur-site
    hote: gpu-01.intra.etablissement
    sortie_reseau: false
  externe:
    moteur: modele-heberge
    hote: api.fournisseur.tiers
    sortie_reseau: true

# les règles locales passent en premier pour qu'un motif patient gagne toujours
ordre_evaluation: [identifiant_patient, donnee_nominative, procedure_generique]

regles:
  identifiant_patient:
    motifs:
      - '\bIPP\s?\d{6,9}\b'
      - '\bNDA\s?\d{6,10}\b'
      - '\b[12]\d{2}(?:0[1-9]|1[0-2])\d{8}\b'
    destination: local
    journaliser_texte: false
  donnee_nominative:
    motifs:
      - '\bchambre\s?\d{1,3}\b'
      - '\bn[ée]e? le \d{2}/\d{2}/\d{4}\b'
    destination: local
    journaliser_texte: false
  procedure_generique:
    motifs:
      - '(?i)\b(proc[ée]dure|protocole|checklist|conduite [àa] tenir)\b'
    destination: externe
    journaliser_texte: true
    exige_absence_de: [identifiant_patient, donnee_nominative]

# la garde : une demande non classée est traitée comme si elle contenait un patient
defaut:
  destination: local
  journaliser_texte: false

audit:
  champs_consignes: [horodatage, regle_appliquee, destination, sortie_reseau, service_demandeur, empreinte_requete, documents_consultes]
  champs_interdits: [texte_requete, identifiant_patient, date_naissance, reponse_generee]
  conservation_jours: 365

# le service refuse de démarrer plutôt que de tourner avec une politique permissive
controles_demarrage:
  refuser_si_defaut_externe: true
  refuser_si_regle_sans_destination: true
  refuser_si_motif_invalide: true

Une donnée patient qui sort du réseau n'est presque jamais un problème de modèle : c'est un fichier de politique dont la règle par défaut autorise la sortie.

Cloud & on-prem

Avant, après

Cloud & on-prem

La stack

Docker

AWS

GCP

Azure

Ollama

vLLM

Terraform

Vercel

Cloud & on-prem

Questions franches

01

Mes données peuvent-elles rester entièrement en interne ?

Oui. Je déploie des modèles open-source directement dans votre infrastructure: rien ne sort de votre périmètre, ni les documents, ni les questions posées. On arbitre ensemble coût, performance et souveraineté.

02

Un modèle privé vaut-il GPT ou Claude ?

Pour beaucoup de tâches ciblées, oui: classification, extraction, RAG sur un domaine précis. Pour le raisonnement complexe, les grands modèles gardent l'avantage. C'est un arbitrage qu'on mesure sur vos données, pas une croyance.

03

L'IA est-elle compatible avec le RGPD ?

Oui, à condition de choisir la bonne architecture: hébergement UE, modèles privés, accords de traitement des données. Chez moi, c'est un critère de conception dès le premier jour, pas une contrainte qu'on découvre à la fin.

04

Un modèle européen suffit-il pour être souverain ?

Pas toujours. Beaucoup de modèles, y compris européens, tournent sur des clouds américains type Azure et retombent alors sous le Cloud Act US : en théorie, une autorité américaine peut y demander l'accès. La vraie souveraineté se joue sur l'endroit où tournent le modèle ET le serveur MCP qui agit sur vos outils. Je vérifie ce point avant de vous conseiller, et je bascule sur du cloud UE ou de l'on-prem quand vos données l'exigent.

À lire sur ce sujet

Contact

Prêt à passer de la démo à la production ?

Réponse sous 24 h · premier échange gratuit et sans engagement.