1. Il caso d’uso del filtro di parole sensibili ai
Una regolakeyword è la regola più semplice del motore: le dai un elenco di
termini, e il gateway fa corrispondere uno qualsiasi di essi al testo in uno
stage. Il matching è per sottostringa senza distinzione tra maiuscole e
minuscole — BadWord, badword e BADWORD corrispondono tutti, e il termine
corrisponde anche quando è incorporato in una parola più lunga (quindi class
corrisponde anche a classic). Ogni termine è trattato come una stringa
letterale, non come un pattern; non fai l’escape dei metacaratteri regex.
Salva la regola una volta nella console, collega il guardrail a qualsiasi chiave
API (o rendilo il default del workspace), e ogni chiamata su quella chiave viene
filtrata senza modifiche all’SDK e senza redeploy. La policy vive nel gateway, non
nella tua applicazione — la tua app continua a chiamare /v1/chat/completions
esattamente come prima.
2. Scrivi la regola nella console
Ogni passaggio qui è un’azione di console sotto la tua sessione. Creare e modificare guardrails richiede Developer+ nel workspace. Solo la chiamata/v1/* finale usa una chiave di relay sk-orca-....
Crea un guardrail
Nella console, apri Guardrails e fai clic su New guardrail. Chiamalo
(≤ 64 caratteri), es.
banned-terms.Aggiungi una regola keyword
Aggiungi una regola:
- Type: Keyword denylist (
keyword) - Stage: Both (richiesta e risposta)
- Action: Block
- Keywords: i tuoi termini vietati, uno per riga
Testala
Apri la tab Test, incolla un campione che contiene un termine vietato,
scegli uno stage ed esegui la policy localmente — nessuna chiamata upstream,
nessuna quota (vedi §5).
Collega una chiave
Modifica una chiave API e scegli
banned-terms dal menu a tendina
Guardrail (imposta guardrail_id sulla chiave), o marca il guardrail come
default del workspace. Vedi
Collega a una chiave e
Default di account.3. Scegli l’azione
Una regola keyword sceglie un’azione per regola:Block — rifiuta la chiamata
Block — rifiuta la chiamata
Qualsiasi match rifiuta la richiesta con HTTP 400
guardrail_blocked.
Una richiesta bloccata non costa quota — un block nello stage di input
scatta prima della misurazione; un block nello stage di output rimborsa la
quota pre-consumata — ed è marcata skip-retry. Usalo per termini che non
devono mai passare in nessuna direzione. Vedi l’
errore guardrail_blocked.Mask — redige il termine
Mask — redige il termine
Ogni match viene sostituito sul posto con un tag di redazione e la richiesta
continua con il testo sanitizzato — il modello upstream non vede mai il
termine originale. Vedi Azioni.
Flag — solo osservazione
Flag — solo osservazione
Registra un match e non cambia nulla del traffico. Usalo per misurare quanto
spesso un termine appare prima di passare all’applicazione.
Spotlight — avvolge come dati non attendibili (input)
Spotlight — avvolge come dati non attendibili (input)
Avvolge il testo corrispondente in delimitatori (es.
⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧) così che il modello lo tratti come dati, non
istruzioni — una difesa di prompt-injection nello stage di input. Il testo
raggiunge comunque il modello, solo recintato. Vedi
Azioni.Lo stage conta.
input scansiona la richiesta del chiamante, output
scansiona la risposta del modello, both scansiona ogni lato indipendentemente.
Un termine vietato che i tuoi utenti digitano e uno che un modello potrebbe
emettere sono problemi diversi — scegli gli stage che si adattano. Vedi
Regole dello stage di input e
Regole dello stage di output.4. Streaming coverage
L’azione che scegli interagisce con il fatto che la risposta sia in streaming:| Azione | Non streaming | Streaming |
|---|---|---|
block (output) | Applicato | Applicato — lo scanner interrompe lo stream |
mask (output) | Applicato | Non ancora — decisione di block onorata, testo mascherato non inoltrato (roadmap) |
5. Testa prima di collegare
Dimostra che la regola fa ciò che ti aspetti prima che qualsiasi chiave vi punti. Apri la tab Test all’interno dell’editor, incolla un campione, scegli lo stage ed esegui:6. Invia una richiesta
Usando una chiave legata abanned-terms, chiama OrcaRouter esattamente come
prima — nessun nuovo header, nessuna modifica all’SDK:
guardrail_blocked prima che raggiunga mai il modello. Cambia l’azione in
mask e il termine viene invece redatto sul posto prima di inoltrare.
7. Vedi cosa è scattato
Ogni regola che scatta registra un match — tipo di regola, azione, stage e una stringa di detail (per le regole keyword, quanti termini hanno corrisposto) — fatto emergere nel feed Matches del workspace. Se un termine benigno continua a corrispondere (una voce di denylist che è una sottostringa di una parola comune), segnalalo come falso positivo dal feed dei Matches e irrigidisci la voce. Vedi Tuning dei falsi positivi.8. Dove andare dopo
Regex detector
Corrispondi a pattern strutturati — SKU, numeri d’ordine, formati — quando una
denylist letterale non basta.
Brand safety
Preset di turpiloquio, menzioni di concorrenti e sicurezza dei minori
costruiti su regole keyword.
Azioni
Come block, mask e flag differiscono e quando usare ciascuno.
Riferimento Guardrails
Il motore completo — ogni tipo di regola, campo e rotta.
llm_judge esegue un controllo semantico contro
un modello del workspace.