Back to blog
Conformité·May 25, 2026·7 min read

Conformité RGPD pour LLM en France — pseudonymisation, DPA et souveraineté

Check-list complète pour déployer Claude / Gemini / GPT en conformité RGPD : code de pseudonymisation des PII, modèle de DPA Article 28, Zero Data Retention auprès d'Anthropic et Google, la question Mistral et la souveraineté AI, hébergement des logs et information des personnes.

Déployer un LLM (Claude, Gemini, GPT) en conformité RGPD pour une entreprise française — la check-list complète : pseudonymisation des données, accord de traitement (DPA), Zero Data Retention, hébergement des logs, et la question Mistral / souveraineté.

Le minimum réglementaire

  1. Pseudonymisation des PII avant tout appel LLM externe
  2. DPA Article 28 RGPD signé avec Kunavo et les fournisseurs en sous-traitance
  3. Registre des traitements à jour, y compris la finalité de chaque appel LLM
  4. Information des personnes : ta politique de confidentialité doit mentionner l'usage de l'AI

1) Pseudonymisation — code prêt à l'emploi

Avant que le prompt quitte ton backend, on remplace les identifiants directs par des tokens. La table de correspondance reste locale :

pseudonymiser.py
# Pseudonymiser les données personnelles avant l'appel LLM
import re
from openai import OpenAI

PATTERNS = [
    (re.compile(r"[\w.+-]+@[\w-]+\.[\w.-]+"), "<EMAIL>"),
    (re.compile(r"\b(?:\+33|0)\s*[1-9](?:\s*\d{2}){4}\b"), "<PHONE_FR>"),
    # Numéro de sécurité sociale français (15 chiffres)
    (re.compile(r"\b[12]\d{2}(?:0[1-9]|1[012])(?:\d{2})(?:\d{3})(?:\d{3})(?:\d{2})\b"), "<NIR>"),
    # IBAN FR
    (re.compile(r"\bFR\d{2}\s?(?:\d{4}\s?){5}\d{3}\b"), "<IBAN_FR>"),
]

def pseudonymiser(texte: str) -> tuple[str, dict]:
    masque = texte
    mapping = {}
    for i, (pat, tag) in enumerate(PATTERNS):
        for m in pat.finditer(texte):
            cle = f"{tag}_{i}_{m.start()}"
            mapping[cle] = m.group(0)
            masque = masque.replace(m.group(0), f"[{cle}]")
    return masque, mapping

Le LLM voit "[EMAIL_0_42] a commandé [IBAN_FR_3_158]" au lieu des vrais identifiants. Si la réponse doit ré-injecter les valeurs (par exemple pour un email de confirmation), on fait la substitution inverse après coup, jamais dans l'API call.

2) DPA — qui doit signer quoi

  • Toi ↔ Kunavo : DPA Article 28 RGPD. Modèle disponible à la demande via sales@kunavo.com (réponse sous 1 jour ouvré)
  • Kunavo ↔ fournisseurs en amont : nous avons des DPAs avec Anthropic, OpenAI et Google. Tu hérites de ces accords via la clause de sous-traitance dans notre DPA
  • Clauses contractuelles types (CCT) : pour les transferts vers les USA (Anthropic, OpenAI), les CCT validées par la Commission européenne sont intégrées dans notre DPA

3) Zero Data Retention (ZDR) auprès des upstreams

Par défaut, Anthropic et Google conservent les logs des prompts pendant 30 jours (Anthropic) / 60 jours (Google) pour surveillance des abus. Pour les workloads RGPD-sensibles :

  • Anthropic ZDR : activable via Kunavo pour les contrats Enterprise à partir de 3 000 $/mois
  • Google Vertex AI EU : routing vers europe-west1 (Belgique) ou europe-west4 (Pays-Bas) possible — données ne quittent pas l'UE
  • OpenAI : ZDR sur tier Enterprise, négociable via nous

La question Mistral et la souveraineté

Beaucoup d'équipes françaises veulent réduire la dépendance aux acteurs américains. Trois angles à considérer :

  • Mistral via Kunavo : Mistral Large et Small arriveront dans notre catalogue (roadmap publique). Routing exclusivement vers des fournisseurs européens activable sur demande
  • Mistral en direct : pour les cas vraiment sensibles (secteur public, santé), Mistral propose un déploiement on-prem. Kunavo ne remplace pas ce besoin
  • Couche d'agrégation utile même en sovereign : mélanger Mistral pour les cas sensibles + Claude pour le reasoning fort se fait naturellement via une seule API compatible OpenAI

Hébergement des logs et data residency

  • Routing Kunavo : stateless sur l'edge, multi-régions
  • Persistance de compte et facturation : région primaire avec réplication. Sur demande Enterprise, routing EU-only et stockage des données de facturation en région UE possible
  • Tes logs applicatifs : à toi de les héberger en UE (OVH, Scaleway, Hetzner). Ne sois pas la maillon faible

Information des personnes — ce qu'il faut dire

Si tu fais traiter des données personnelles par un LLM, la politique de confidentialité doit le mentionner. Template minimal :

Nous utilisons des modèles d'intelligence artificielle (Anthropic Claude, Google Gemini, OpenAI GPT) en sous-traitance via Kunavo (https://kunavo.com), pour les finalités suivantes : [classification, résumé, génération de réponse, etc.]. Les données personnelles sont pseudonymisées avant transmission. Aucune donnée n'est utilisée pour entraîner les modèles. Vous disposez d'un droit d'accès, de rectification, d'opposition et d'effacement selon les articles 15 à 21 du RGPD.

Que vérifier avant la mise en production

  • DPA signé avec Kunavo
  • Registre des traitements à jour
  • Pseudonymisation testée sur un échantillon réel (taux de fuite < 0,1 %)
  • Logs en région UE
  • Procédure pour répondre aux demandes Article 17 (droit à l'effacement)
  • Politique de confidentialité mise à jour et accessible
  • DPO consulté si traitement à grande échelle ou sensible

Prêt à commencer ? Inscription gratuiteavec 2 $ de crédit. Demande de DPA directement à sales@kunavo.com.