Prévention des fuites de données (DLP)
Le moteur de garde-fous — détection des données personnelles, vérification des hallucinations, regex et validation JSON en tant que porte de workflow configurable.
La couche DLP est une porte de workflow configurable. Elle s'exécute chaque fois qu'un workflow souhaite valider le contenu en entrée ou en sortie par rapport à une politique définie — détection et masquage des données personnelles, scoring d'hallucination, validation JSON ou correspondance regex.
Cette page documente le bloc Guardrails et les quatre types de validation qu'il prend en charge.
Quand l'utiliser
Emplacements typiques :
- Porte d'entrée — analyser un message utilisateur à la recherche de données personnelles avant qu'il n'atteigne un LLM.
- Porte de sortie — analyser une réponse LLM à la recherche de données personnelles avant de la renvoyer à l'utilisateur.
- Porte d'hallucination — scorer une réponse par rapport à une base de connaissances avant de l'exposer.
- Porte de format — vérifier qu'un LLM a produit du JSON valide / correspond à une regex avant de le transmettre en aval.
Le bloc Guardrails fait partie du produit scrydon:guardrails — voir Vendeurs → Scrydon.
Quatre types de validation
| Type | Vitesse | Coût | Idéal pour |
|---|---|---|---|
| Détection des données personnelles | variable (voir ci-dessous) | variable | Détection et masquage de données personnelles structurées et non structurées |
| Hallucination | Coût LLM | Par appel | Ancrage des sorties dans une base de connaissances |
| Validation JSON | ~1ms | Aucun | Conformité stricte au schéma |
| Correspondance regex | ~1ms | Aucun | Application de patterns personnalisés |
La détection des données personnelles se décline en trois variantes — choisies par bloc :
| Méthode | Vitesse | Coût | Idéal pour |
|---|---|---|---|
| Regex uniquement | ~1ms | Aucun | Données personnelles structurées (numéro de sécurité sociale, carte de crédit, IBAN), correspondance de patterns rapide |
| LLM uniquement | ~500ms | Par appel | Données personnelles non structurées (noms, localisations), jugements de contenu nuancés |
| Hybride | ~500ms | Par appel | Données personnelles structurées + non structurées en une seule passe |
Détection des données personnelles
Le détecteur de données personnelles reconnaît plus de 30 types d'entités dans plus de 10 régions.
Entités prises en charge
| Région | Entités |
|---|---|
| Mondial | EMAIL_ADDRESS, PHONE_NUMBER, CREDIT_CARD, IP_ADDRESS, URL, IBAN_CODE, CRYPTO, DATE_TIME |
| USA | US_SSN, US_PASSPORT, US_DRIVER_LICENSE, US_ITIN, US_BANK_NUMBER |
| UK | UK_NHS, UK_NINO |
| UE | ES_NIF, IT_FISCAL_CODE, PL_PESEL, FI_PERSONAL_IDENTITY_CODE |
| APAC | IN_AADHAAR, IN_PAN, AU_TFN, AU_ABN, SG_NRIC_FIN |
| LLM uniquement | PERSON, LOCATION, NRP, MEDICAL_LICENSE |
Deux modes d'action
| Mode | Comportement |
|---|---|
| Bloquer | La validation échoue. Le workflow suit la branche d'échec. |
| Masquer | Les données personnelles sont remplacées par des espaces réservés <ENTITY_TYPE>. Le workflow continue avec le contenu masqué. |
Exemple — détection par regex
Entrée : Contact john@acme.com, SSN 123-45-6789, card 4111111111111111
Sortie :
[
{ type: "EMAIL_ADDRESS", text: "john@acme.com", start: 8, end: 21, score: 0.95 },
{ type: "US_SSN", text: "123-45-6789", start: 27, end: 38, score: 0.90 },
{ type: "CREDIT_CARD", text: "4111111111111111", start: 45, end: 61, score: 0.95 },
]Exemple — sortie en mode masquage
"Contact <EMAIL_ADDRESS>, SSN <US_SSN>, card <CREDIT_CARD>"Exemple — sortie en mode blocage
{
"passed": false,
"error": "PII detected: EMAIL_ADDRESS, US_SSN, CREDIT_CARD",
"detectedEntities": [
{ "type": "EMAIL_ADDRESS", "text": "john@acme.com", "start": 8, "end": 21, "score": 0.95 }
]
}Mode hybride
Le mode hybride exécute les deux moteurs en parallèle et déduplique les détections qui se chevauchent en privilégiant les correspondances les plus fiables :
EMAIL_ADDRESS, US_SSN, CREDIT_CARD, IBAN_CODE, …).PERSON, LOCATION, NRP, …).Détection des hallucinations
Valide une sortie LLM par rapport à une base de connaissances en utilisant RAG et le scoring LLM :
Échelle de confiance :
| Score | Signification |
|---|---|
| 0–2 | Hallucination totale — contredit ou non supporté par le contexte |
| 3–4 | Faible confiance — affirmations importantes absentes du contexte |
| 5–6 | Confiance moyenne — partiellement supporté |
| 7–8 | Haute confiance — majoritairement supporté, lacunes mineures |
| 9–10 | Entièrement ancré — toutes les affirmations vérifiées par rapport au contexte |
Exemple de sortie
{
"passed": false,
"score": 2,
"reasoning": "The claim about Q4 revenue is not mentioned in any knowledge base document",
"error": "Low confidence: score 2/10 is below threshold 3"
}Configuration
Le bloc Guardrails expose ces champs dans l'éditeur de workflow :
| Champ | Type | Options |
|---|---|---|
| Contenu à valider | Champ texte long | Texte libre ou câblé depuis un bloc amont |
| Type de validation | Liste déroulante | JSON valide, Correspondance regex, Vérification d'hallucination, Détection de données personnelles |
| Types de données personnelles à détecter | Champ texte | Types d'entités séparés par des virgules (PERSON, EMAIL_ADDRESS, US_SSN, …) |
| Action sur les données personnelles | Liste déroulante | Bloquer la requête, Masquer les données personnelles |
| Méthode de détection | Liste déroulante | Regex uniquement (rapide), LLM uniquement (IA), Hybride (regex + LLM) |
| Langue | Liste déroulante | Anglais, Espagnol, Italien, Polonais, Finnois |
Association avec le bloc Evaluator
Le bloc Guardrails est fail-closed (fermé en cas d'échec) — en cas d'échec, le workflow suit la branche d'échec. Le bloc Evaluator est scoring — il renvoie un score sur lequel le workflow peut brancher comme il le souhaite. Utilisez Guardrails pour des portes strictes, Evaluator pour des vérifications de qualité qui pilotent des tentatives de reprise ou des chemins de secours.
Guardrails peut s'exécuter sur tout texte en entrée ou en sortie — il n'est pas spécifique aux LLM. Validez par exemple un document téléversé par un utilisateur à la recherche de données personnelles avant de l'ingérer dans une base de connaissances.
Comment nous mesurons le moteur DLP de la plateforme
Au-delà du bloc Guardrails, Scrydon exécute un moteur DLP de niveau plateforme sur chaque appel de capacité (complétions LLM, transcription, OCR, …) — en analysant les entités de données personnelles et les violations d'égress selon la classification (contenu classifié sortant vers une destination moins habilitée). Les affirmations sur la qualité de détection sont faciles à formuler et difficiles à vérifier, c'est pourquoi nous mesurons ce moteur de la même manière que nous mesurons la qualité de la récupération : sur un benchmark public tiers, avec le harnais en CI comme porte de publication — une version qui régresserait en dessous des seuils ne sera pas livrée.
Mesurée sur une tranche anglophone de 2 661 prompts de ai4privacy/pii-masking-300k (révision de dataset épinglée, évaluée au moment du build — le dataset lui-même n'est jamais redistribué) plus une banque d'escalade de classification interne :
| Vérification | Résultat | Seuil de publication |
|---|---|---|
| Rappel des données personnelles (types d'entités gradués) | 95,7 % | ≥ 90 % |
| Précision des données personnelles | 79,8 % | ≥ 75 % |
| Égress de classification — rappel au niveau confidentiel | 100 % | ≥ 95 % |
| Égress de classification — rappel au niveau secret | 100 % | ≥ 99 % |
Par type d'entité gradué : email 99,6 %, adresse IP 99,5 %, numéro de téléphone 86,1 % de rappel.
Ce que nous ne prétendons pas. Le rapport comporte une section obligatoire hors périmètre listant
les catégories de détection que le moteur ne couvre pas, avec des preuves mesurées plutôt que
le silence : noms de personnes en texte libre (domaine NER — l'heuristique regex mesurée à 14 %
de rappel, nous ne le notons donc pas), formats libres de date de naissance (3 % — le moteur
revendique ISO 8601 uniquement), et identifiants nationaux génériques (27 % — le moteur
revendique des formats juridictionnels spécifiques tels que US_SSN ou BE_NRN, pas des suites
de chiffres arbitraires). Chacun est documenté dans l'artefact de rapport signé afin que les auditeurs
voient le périmètre, et non un chiffre marketing.
Voir aussi
- Architecture → Cortex — où Cortex peut appliquer des garde-fous sur chaque appel LLM en tant que couche indépendante du workflow.
- Habilitation de la base de connaissances — l'habilitation est un axe distinct de la DLP, et non un remplacement.
- Conformité — comment la DLP se mappe aux contrôles des référentiels (RGPD, EU AI Act, ISO 42001).