pii intégré couvre les entités courantes — email, téléphone,
carte de crédit, SSN, IBAN, JWT, clés cloud. Mais vos données sensibles sont
les vôtres : identifiants d’employés, numéros de dossier internes, références
de compte client, le format de commande d’un partenaire. Une entité PII
personnalisée vous permet d’apprendre à la même règle de masquage à
reconnaître ces formes, afin que la passerelle les redacte avant que le modèle
— ou tout outil en aval — ne les voie jamais.
Cette page couvre la seule chose que les entités personnalisées ajoutent à la
règle de détection de PII : vos propres
détecteurs. Pour le moteur complet — chaque type de règle, étape et route —
voir la référence Guardrails.
Chaque étape ici est une action de console sur la passerelle hébergée
(
api.orcarouter.ai). Vous rédigez le guardrail sous votre propre session ;
seul l’appel /v1/* final utilise une clé de relais sk-orca-.... Créer et
modifier des guardrails nécessite Developer+ dans l’espace de travail.1. Quand vous avez besoin d’un guardrail détecteur de PII personnalisé pour LLM
L’ensemble d’entités intégrées est fermé et partagé à travers le moteur, le validateur et le constructeur de règles. C’est le bon outil pour les identifiants standards. Recourez à une entité personnalisée quand les données que vous voulez redacter ont une forme prévisible qu’aucun détecteur intégré ne couvre :Identifiants internes
Identifiants d’employés (
EMP482915), numéros de dossier, références de
ticket, SKUs internes — tout ce qui a un préfixe fixe et une suite de
chiffres.Numéros de compte & de commande
Références de compte client ou format de commande d’un partenaire qui ne
devrait jamais atteindre un modèle tiers tel quel.
Numéros à checksum
Numéros de type carte ou d’adhésion qui passent une vérification Luhn —
ajoutez le checksum pour réduire les faux positifs sur les suites de
chiffres ressemblantes.
Codes spécifiques au domaine
Numéros de police, identifiants de sinistre, numéros de série d’appareils —
tout token que votre industrie traite comme sensible mais que les
détecteurs génériques ne connaissent pas.
pii. Elle détecte les correspondances et applique
l’action de la règle — mask, block ou flag — exactement comme le fait une
entité intégrée.
2. Anatomie d’une entité personnalisée
Une entité personnalisée, ce sont trois petits champs plus une balise de masque optionnelle. Vous les ajoutez dans l’éditeur de règlepii sous Custom
entities :
| Champ | Requis | Ce qu’il fait |
|---|---|---|
name | oui | ID stable, par exemple employee_id. ASCII minuscule / chiffres / _, doit commencer par une lettre. Circule dans le flux Matches et les journaux d’audit. |
pattern | oui | Une regex Go RE2 (temps linéaire, sans backreferences). Doit compiler. |
checksum | non | luhn valide chaque correspondance avec l’algorithme de Luhn. Seuls "" (aucun) ou "luhn" sont acceptés. |
mask_with | non | Remplacement verbatim sur une action mask. Par défaut [<UPPERCASE_NAME>]. |
Le checksum Luhn optionnel
Beaucoup d’identifiants « en forme de nombre » — cartes de paiement, certains numéros d’adhésion et de compte — portent un chiffre de contrôle Luhn (mod-10). Une regex nue comme\d{16} correspond à n’importe quelle suite de 16
chiffres, y compris les numéros de téléphone, les timestamps et les totaux de
commande. Définir checksum: "luhn" fait que le détecteur ne se déclenche
que lorsque les chiffres correspondants passent aussi la vérification Luhn,
afin que les suites ressemblantes passent proprement et que votre taux de faux
positifs reste bas. Laissez-le vide pour les tokens sans checksum comme un
identifiant d’employé.
Votre propre balise de masque
Sur une actionmask, un email intégré est rendu en [EMAIL]. Une entité
personnalisée est rendue en [<UPPERCASE_NAME>] par défaut — une correspondance
employee_id devient [EMPLOYEE_ID]. Définissez mask_with pour surcharger
cela verbatim (par exemple <id> ou ***) quand vous voulez un token de
remplacement spécifique dans le texte que le modèle reçoit. Voir
Formats de masquage pour les règles
de rendu à travers les types d’entités.
3. Un exemple concret
Supposons que vos prompts transportent des identifiants d’employés sous la formeEMP suivi de six chiffres, et que vous voulez les masquer à l’étape
input afin que le modèle en amont ne voie jamais un vrai ID. Ajoutez une
seule entité personnalisée à une règle pii :
/v1/chat/completions exactement comme avant — la passerelle masque la
requête avant la transmission, sans changement de SDK.
Le masquage s’exécute aux deux étapes : une règle input redacte la requête
avant que le modèle ne la voie, et une règle output redacte la réponse du
modèle — y compris les réponses streaming, où le scanner réécrit les
correspondances in-band. Les actions block sont appliquées sur les deux étapes
également. Pour contrôler les réponses du modèle, voir
Règles à l’étape output.
Un exemple à checksum
Pour un numéro d’adhésion de type carte, ajoutez la vérification Luhn afin que les suites de 16 chiffres qui ne sont pas des numéros valides ne correspondent pas :4. Limites et validation
Le constructeur de règles valide chaque entité personnalisée à l’enregistrement — un mauvais détecteur n’atteint jamais le chemin à chaud.Jusqu'à 25 entités personnalisées par règle
Jusqu'à 25 entités personnalisées par règle
Chaque entité personnalisée est un scan regex sur l’intégralité du texte,
donc le plafond par règle est de 25. Le plafond garde le chemin à chaud
linéaire ; les motifs compilés sont mis en cache à travers les requêtes.
Besoin de plus de formes ? Répartissez-les sur plusieurs règles
pii dans
le même guardrail.Le motif doit compiler
Le motif doit compiler
pattern est une regex Go RE2 — temps linéaire, sans backreferences. Le
validateur rejette un motif qui ne compile pas, avec l’entité fautive
nommée dans l’erreur.checksum est un ensemble fermé
checksum est un ensemble fermé
Seuls
"" (aucune vérification) et "luhn" sont acceptés. Tout le reste —
"sha256", "mod10", même "LUHN" — est rejeté à l’enregistrement.Les noms sont uniques et bien formés
Les noms sont uniques et bien formés
Un
name doit commencer par une lettre et n’utiliser que de l’ASCII
minuscule, des chiffres et des underscores. Deux entités personnalisées
dans une même règle ne peuvent pas partager un nom.5. Overrides d’action par entité
Une entité personnalisée participe à la même mapentity_actions qu’une entité
intégrée. Une règle pii peut masquer la plupart des choses mais
bloquer sur un détecteur personnalisé à haute sensibilité — référencez
l’entité par son name :
entity_actions doivent référencer une entité intégrée activée
sur la règle ou le name d’une entité personnalisée ; les valeurs doivent être
block, mask, flag ou annotate. Le validateur rejette tout le reste.
6. Où aller ensuite
PII Shield
La seule règle de masquage sur laquelle les entités personnalisées se
superposent — l’ensemble de détecteurs intégrés et les balises de masque
typées.
Formats de masquage
Comment chaque entité est rendue sur une action mask, et comment
mask_with la surcharge.Détecteurs regex
Quand une simple règle
regex convient mieux qu’une entité PII typée.Ajuster les faux positifs
Utilisez le flux Matches et le checksum pour affiner la précision.
