1. Pourquoi tester les politiques de guardrail IA avant d’attacher une clé
Une politique de contenu a deux modes d’échec, et ils tirent dans des directions opposées :- Manques — une attaque ou une fuite passe parce qu’aucune règle ne s’est déclenchée.
- Faux positifs — un prompt bénin est bloqué ou masqué parce qu’une règle est trop large.
Les deux outils s’exécutent entièrement sur votre session via l’API de
gestion (
/api/guardrail/*) — jamais la clé de relais. Ils évaluent le texte
localement et n’envoient rien en amont, donc une exécution de test ne coûte
aucun quota de modèle.2. L’onglet Test — un échantillon, verdict instantané
Chaque éditeur de guardrail a un onglet Test. Collez un échantillon, choisissez une étape (input ou output), et exécutez le brouillon actuel de la
politique. Vous récupérez la décision complète — blocked, mutated, le
texte sanitized, et la liste des violations — afin que vous puissiez prouver
qu’une seule règle fait ce que vous attendez avant d’enregistrer.
Ouvrir l'éditeur
Dans la console, allez sur
/console/guardrails, ouvrez le guardrail, et
sélectionnez l’onglet Test.3. L’onglet Eval — scorer une politique contre un corpus
L’onglet Eval exécute votre guardrail contre un corpus d’échantillons labellisés et rapporte comment il a scoré : précision, rappel et F1 globaux et par catégorie, plus les échantillons exacts qu’il a eus faux. Utilisez-le pour ajuster un rubricllm_judge, prouver qu’une règle de block attrape une famille
d’attaques connue, ou attraper une regex trop large avant qu’elle ne commence à
rejeter du bon trafic.
Une exécution stream sa progression au fur et à mesure (un event par échantillon
terminé) et persiste une ligne d’exécution que vous pouvez rouvrir plus tard
— queued → running → complete, avec les règles capturées en instantané au
moment de l’exécution afin qu’une modification ultérieure du guardrail ne réécrive
jamais le verdict d’une ancienne exécution.
Corpus fournis
Ensembles de red-team et bénins intégrés à la passerelle — injection de
prompt, jailbreaks, PII/secrets, multilingue, sur-refus. Aucune
configuration.
JSONL personnalisé
Chargez votre propre ensemble labellisé pour mesurer la politique contre vos
formes de trafic réelles.
4. À quoi ressemble un corpus (JSONL)
Un corpus est du JSONL — un objet JSON par ligne. Chaque ligne est un échantillon labellisé : letext à évaluer, le stage auquel il appartient, et
l’expected_action que la politique devrait produire. Le runner compare le
verdict réel de la politique à ce label pour scorer l’exécution.
Référence des champs
Référence des champs
| Champ | Signification |
|---|---|
id | Unique par ligne. Requis — les lignes à id vide sont rejetées comme malformées. |
text | Le prompt ou la complétion à évaluer. Requis. |
stage | input ou output — par quelle étape exécuter l’échantillon. |
expected_action | block, mask, flag, ou "" (bénin — aucune action attendue). |
category | Label libre qui regroupe les métriques par catégorie. |
Les lignes malformées sont tolérées, pas silencieuses
Les lignes malformées sont tolérées, pas silencieuses
Une ligne avec un mauvais JSON ou un
id/text manquant est sautée et
comptée, pas fatale — une seule faute de frappe ne fait jamais exploser
toute l’exécution. Le loader augmente son buffer pour les longs prompts
multi-lignes, donc un échantillon avec des sauts de ligne intégrés dans une
chaîne JSON se parse correctement.5. Corpus fournis — ensembles de red-team, zéro configuration
La passerelle livre un catalogue de corpus curés que vous pouvez exécuter immédiatement — chacun porte sa source, sa licence, sa couverture linguistique, et un aperçu d’échantillon dans le sélecteur. Ils sont groupés en 11 catégories qui couvrent la surface d’attaque que le trafic réel voit :| Catégorie | Ce qu’elle sonde |
|---|---|
prompt_injection | Surcharge d’instructions et soumissions d’injection écrites par des humains. |
jailbreak_single_turn | Jailbreaks réels in-the-wild + un référentiel de comportement académique. |
jailbreak_encoded_multiturn | Sondes base64 / ROT13 / leetspeak / découpage de payload. |
indirect_agent | Injection livrée via des sorties d’outils à un agent utilisant des outils. |
multilingual | Prompts de red-team de locuteurs natifs dans de nombreuses langues, incl. à faibles ressources. |
pii_secrets | Emails, SSN, cartes, IBANs, clés API, clés AWS, JWTs. |
toxicity | Prompts de génération toxique et contrastes de sur-refus. |
bias | Sondes de stéréotype et de discrimination. |
hallucination | Ensembles adverses de factualité / fidélité. |
hazardous_knowledge | Sondes de connaissances chim / bio / cyber à double usage. |
over_refusal_benign | Prompts sûrs qui semblent non sûrs — votre garde-fou de régression de faux positifs. |
Le corpus fourni
owasp_llm_top10 est un ensemble de test labellisé couvrant
les familles d’attaques OWASP LLM Top 10 (injection de prompt, jailbreaks, sortie
non sûre, exfil de données) — c’est un corpus contre lequel exécuter une éval,
pas un pack de conformité. Pour les packs de cadre qui matérialisent des
politiques, voir compliance.6. Un exemple concret — évaluer le preset PII Shield
Disons que vous êtes parti du preset PII Shield (une seule règlepii,
mask) et que vous voulez confirmer qu’il attrape les formes d’identifiants
qu’un modèle pourrait émettre avant de le lier à une clé. Exécutez-le contre le
corpus fourni pii_smoke.
Eval est une action de niveau lecture (POST /api/guardrail/:id/eval,
Member) — elle persiste une ligne d’exécution mais ne mute aucune politique :
expected vs got) afin que
vous puissiez grep le corpus et corriger la règle. Rouvrez-la à tout moment depuis
la liste Runs (GET /api/guardrail/:id/eval/runs).
7. Corpus personnalisés — tester contre votre propre trafic
Les ensembles fournis prouvent que la politique gère les attaques connues. Pour prouver qu’elle gère vos prompts, chargez votre propre JSONL. Il y a trois façons de pointer une éval vers un corpus, et elles se résolvent dans cet ordre :Chargement ad-hoc (corpus_data)
Chargement ad-hoc (corpus_data)
Passez un blob JSONL encodé en base64 inline sur la requête d’éval. L’emporte
sur tout le reste — itérez sur un ensemble brouillon sans l’enregistrer dans
l’espace de travail.
Corpus enregistré (corpus_id)
Corpus enregistré (corpus_id)
Chargez une fois via
POST /api/guardrail/eval/corpora (Developer+),
puis référencez-le par id sur les exécutions futures. Le nom doit
correspondre à ^[a-z][a-z0-9_]*$ et ne peut pas masquer un nom fourni.Fourni (corpus_name)
Fourni (corpus_name)
Nommez l’un des corpus livrés, comme en §6.
GET /api/guardrail/eval/corpora (Member) ; le chargement
et la suppression sont Developer+.
8. Lire le score
Le runner classifie chaque échantillon dans une matrice de confusion et dérive les métriques phares à partir d’elle :| Terme | Signification |
|---|---|
| Rappel | Des prompts qui devraient déclencher la politique, combien l’ont fait. Rappel bas = manques. |
| Précision | Des prompts que la politique a déclenchés, combien auraient dû l’être. Précision basse = faux positifs. |
| F1 | La moyenne harmonique — un seul nombre qui punit un ajustement déséquilibré. |
9. Où aller ensuite
Ajuster les faux positifs
Transformez une liste de failures en une politique plus serrée et moins
bruyante.
Couverture du streaming
Quelles combinaisons étape/action tiennent sur le trafic SSE — vérifiez avant
de vous y fier.
Flux des correspondances
Une fois en production, chaque règle qui se déclenche atterrit ici — le
pendant de production de l’éval.
Versioning
Diffez et rétablissez une politique après qu’une éval vous dit que le dernier
changement a régressé.
Pages de guardrail liées
Pages de guardrail liées
Concepts & menaces liés
Concepts & menaces liés
Référence complète du moteur
Référence complète du moteur
Guardrails — chaque type de règle, champ et route,
y compris l’API d’éval et de corpus.
