pii integrato copre le entità comuni — email, telefono, carta di
credito, SSN, IBAN, JWT, chiavi cloud. Ma i tuoi dati sensibili sono tuoi: ID
dipendente, numeri di caso interni, riferimenti di conto cliente, il formato
d’ordine di un partner. Un’entità PII personalizzata ti permette di insegnare
alla stessa regola di masking a riconoscere quelle forme, così che il gateway le
rediga prima che il modello — o qualsiasi tool a valle — le veda mai.
Questa pagina copre l’unica cosa che le entità personalizzate aggiungono alla
regola di PII detection: i tuoi detector.
Per il motore completo — ogni tipo di regola, stage e rotta — vedi il
riferimento Guardrails.
Ogni passaggio qui è un’azione di console sul gateway gestito
(
api.orcarouter.ai). Scrivi il guardrail sotto la tua sessione; solo la chiamata
/v1/* finale usa una chiave di relay sk-orca-.... Creare e modificare
guardrails richiede Developer+ nel workspace.1. Quando ti serve un guardrail di detector PII personalizzato LLM
L’insieme di entità integrate è chiuso e condiviso tra il motore, il validator e il rule builder. È lo strumento giusto per gli identificatori standard. Ricorri a un’entità personalizzata quando i dati che vuoi redigere hanno una forma prevedibile che nessun integrato copre:Identificatori interni
ID dipendente (
EMP482915), numeri di caso, riferimenti di ticket, SKU
interni — qualsiasi cosa con un prefisso fisso e una sequenza di cifre.Numeri di conto e d'ordine
Riferimenti di conto cliente o il formato d’ordine di un partner che non
dovrebbe mai raggiungere un modello di terze parti verbatim.
Numeri con checksum
Numeri simili a carte o di iscrizione che passano un controllo Luhn —
aggiungi il checksum per ridurre i falsi positivi su sequenze di cifre
somiglianti.
Codici specifici di dominio
Numeri di polizza, ID di sinistro, seriali di dispositivo — qualsiasi token
che il tuo settore tratta come sensibile ma che i detector generici non
conoscono.
pii. Rileva i match e applica l’azione della regola — mask,
block o flag — esattamente come fa un’entità integrata.
2. Anatomia di un’entità personalizzata
Un’entità personalizzata è tre piccoli campi più un mask tag opzionale. Li aggiungi nell’editor della regolapii sotto Custom entities:
| Campo | Obbligatorio | Cosa fa |
|---|---|---|
name | sì | ID stabile, es. employee_id. ASCII minuscolo / cifre / _, deve iniziare con una lettera. Confluisce nel feed dei Matches e negli audit log. |
pattern | sì | Una regex Go RE2 (tempo lineare, nessuna backreference). Deve compilare. |
checksum | no | luhn valida ogni match con l’algoritmo di Luhn. Sono accettati solo "" (nessuno) o "luhn". |
mask_with | no | Sostituzione verbatim su un’azione mask. Per default [<UPPERCASE_NAME>]. |
Il checksum Luhn opzionale
Molti identificatori “a forma di numero” — carte di pagamento, alcuni numeri di iscrizione e di conto — portano una cifra di controllo Luhn (mod-10). Una regex nuda come\d{16} corrisponde a qualsiasi sequenza di 16 cifre, inclusi numeri
di telefono, timestamp e totali d’ordine. Impostare checksum: "luhn" fa
scattare il detector solo quando le cifre corrispondenti passano anche il
controllo Luhn, così le sequenze somiglianti passano in modo pulito e il tuo
tasso di falsi positivi resta basso. Lascialo vuoto per token senza checksum come
un ID dipendente.
Il tuo mask tag
Su un’azionemask, un’email integrata viene renderizzata come [EMAIL].
Un’entità personalizzata viene renderizzata come [<UPPERCASE_NAME>] per default
— un match employee_id diventa [EMPLOYEE_ID]. Imposta mask_with per
sovrascriverlo verbatim (es. <id> o ***) quando vuoi un token di sostituzione
specifico nel testo che il modello riceve. Vedi
Formati di masking per le regole di
rendering tra i tipi di entità.
3. Un esempio concreto
Supponi che i tuoi prompt portino ID dipendente nella formaEMP seguito da sei
cifre, e che tu voglia mascherarli nello stage di input così che il modello
upstream non veda mai un ID reale. Aggiungi una singola entità personalizzata a
una regola pii:
/v1/chat/completions esattamente come prima — il gateway maschera la
richiesta prima di inoltrare, senza modifiche all’SDK.
Il masking gira in entrambi gli stage: una regola di input redige la
richiesta prima che il modello la veda, e una regola di output redige la
risposta del modello — incluse le risposte in streaming, dove lo scanner riscrive
i match in-band. Le azioni di block sono applicate anche su entrambi gli stage.
Per gestire le risposte del modello, vedi
Regole dello stage di output.
Un esempio con checksum
Per un numero di iscrizione simile a una carta, aggiungi il controllo Luhn così che le sequenze di 16 cifre che non sono numeri validi non corrispondano:4. Limiti e validazione
Il rule builder valida ogni entità personalizzata al salvataggio — un detector difettoso non raggiunge mai l’hot path.Fino a 25 entità personalizzate per regola
Fino a 25 entità personalizzate per regola
Ogni entità personalizzata è una scansione regex su tutto il testo, quindi il
limite per regola è 25. Il limite mantiene l’hot path lineare; i pattern
compilati sono in cache tra le richieste. Ti servono più forme? Suddividile su
più regole
pii nello stesso guardrail.Il pattern deve compilare
Il pattern deve compilare
pattern è una regex Go RE2 — tempo lineare, nessuna backreference. Il
validator rifiuta un pattern che non compila, con l’entità incriminata
nominata nell’errore.checksum è un insieme chiuso
checksum è un insieme chiuso
Sono accettati solo
"" (nessun controllo) e "luhn". Qualsiasi altra cosa
— "sha256", "mod10", persino "LUHN" — è rifiutata al salvataggio.I nomi sono unici e ben formati
I nomi sono unici e ben formati
Un
name deve iniziare con una lettera e usare solo ASCII minuscolo, cifre e
underscore. Due entità personalizzate in una regola non possono condividere un
nome.5. Override di azione per entità
Un’entità personalizzata partecipa alla stessa mappaentity_actions di
un’entità integrata. Una regola pii può mascherare la maggior parte delle
cose ma bloccare su un detector personalizzato ad alta sensibilità — riferisci
l’entità tramite il suo name:
entity_actions devono riferire un’entità integrata abilitata sulla
regola o il name di un’entità personalizzata; i valori devono essere block,
mask, flag o annotate. Il validator rifiuta qualsiasi altra cosa.
6. Dove andare dopo
PII Shield
La singola regola di masking su cui le entità personalizzate si sovrappongono
— l’insieme di detector integrati e i mask tag tipizzati.
Formati di masking
Come ogni entità viene renderizzata su un’azione mask, e come
mask_with
la sovrascrive.Regex detector
Quando una semplice regola
regex si adatta meglio di un’entità PII tipizzata.Tuning dei falsi positivi
Usa il feed dei Matches e il checksum per regolare la precisione.
