1. El caso de uso de filtro de palabras sensibles en el gateway de IA
Una reglakeyword es la regla más simple del motor: le das una lista de
términos, y el gateway coincide con cualquiera de ellos contra el texto en una
etapa. La coincidencia es por subcadena sin distinguir mayúsculas y
minúsculas — BadWord, badword y BADWORD coinciden todos, y el término
coincide incluso cuando está embebido en una palabra más larga (así class
también coincide con classic). Cada término se trata como una cadena literal,
no un patrón; no escapas metacaracteres regex.
Guarda la regla una vez en la consola, vincula el guardrail a cualquier clave
API (o márcalo como valor por defecto del espacio de trabajo), y cada llamada en
esa clave se examina sin cambio de SDK y sin redespliegue. La política vive en
el gateway, no en tu aplicación — tu app sigue llamando a
/v1/chat/completions exactamente como antes.
2. Crea la regla en la consola
Cada paso aquí es una acción de consola bajo tu propia sesión. Crear y editar guardrails requiere Developer+ en el espacio de trabajo. Solo la llamada final/v1/* usa una clave de relay sk-orca-....
Crea un guardrail
En la consola, abre Guardrails y haz clic en New guardrail. Nómbralo
(≤ 64 caracteres), p. ej.
banned-terms.Añade una regla keyword
Añade una regla:
- Tipo: Keyword denylist (
keyword) - Etapa: Both (solicitud y respuesta)
- Acción: Block
- Keywords: tus términos prohibidos, uno por fila
Pruébalo
Abre la pestaña Test, pega una muestra que contenga un término prohibido,
elige una etapa y ejecuta la política localmente — sin llamada upstream, sin
cuota (ver §5).
Vincula una clave
Edita una clave API y elige
banned-terms del desplegable Guardrail
(establece guardrail_id en la clave), o marca el guardrail como valor por
defecto del espacio de trabajo. Ver
Vincular a una clave y
Valor por defecto de cuenta.3. Elige la acción
Una regla keyword elige una acción por regla:Block — rechaza la llamada
Block — rechaza la llamada
Cualquier coincidencia rechaza la solicitud con HTTP 400
guardrail_blocked. Una solicitud bloqueada no cuesta cuota — un bloqueo
en la etapa de entrada se dispara antes de la medición; un bloqueo en la
etapa de salida reembolsa la cuota preconsumida — y se marca como
skip-retry. Úsalo para términos que nunca deben pasar en ninguna
dirección. Ver el
error guardrail_blocked.Mask — redacta el término
Mask — redacta el término
Cada coincidencia se reemplaza en su lugar con una etiqueta de redacción y la
solicitud continúa con el texto saneado — el modelo upstream nunca ve el
término original. Ver Acciones.
Flag — solo observar
Flag — solo observar
Registra una coincidencia y no cambia nada del tráfico. Úsalo para medir con
qué frecuencia aparece un término antes de pasar a la aplicación.
Spotlight — envuelve como datos no confiables (entrada)
Spotlight — envuelve como datos no confiables (entrada)
Envuelve el texto coincidente en delimitadores (p. ej.
⟦UNTRUSTED⟧…⟦/UNTRUSTED⟧) para que el modelo lo trate como datos, no
instrucciones — una defensa de inyección de prompts en la etapa de
entrada. El texto aún llega al modelo, solo que vallado. Ver
Acciones.La etapa importa.
input escanea la solicitud del llamador, output
escanea la respuesta del modelo, both escanea cada lado independientemente. Un
término prohibido que tus usuarios escriben y uno que un modelo podría emitir son
problemas diferentes — elige la(s) etapa(s) que encajen. Ver
Reglas de la etapa de entrada y
Reglas de la etapa de salida.4. Cobertura de streaming
La acción que eliges interactúa con si la respuesta hace streaming:| Acción | Sin streaming | Con streaming |
|---|---|---|
block (salida) | Aplicado | Aplicado — el escáner corta el stream |
mask (salida) | Aplicado | Aún no — la decisión de bloqueo se honra, el texto enmascarado no se reenvía (roadmap) |
5. Prueba antes de vincular
Prueba que la regla hace lo que esperas antes de que cualquier clave la apunte. Abre la pestaña Test dentro del editor, pega una muestra, elige la etapa y ejecuta:6. Envía una solicitud
Usando una clave vinculada abanned-terms, llama a OrcaRouter exactamente como
antes — sin nuevas cabeceras, sin cambio de SDK:
guardrail_blocked antes de que llegue jamás al modelo. Cambia la acción a
mask y el término se redacta en su lugar antes de reenviar en su lugar.
7. Ve qué se disparó
Cada regla que se dispara registra una coincidencia — tipo de regla, acción, etapa y una cadena de detalle (para reglas keyword, cuántos términos coincidieron) — que aparece en el feed Matches del espacio de trabajo. Si un término benigno sigue coincidiendo (una entrada de denylist que es una subcadena de una palabra común), márcalo como falso positivo desde el feed de Matches y acota la entrada. Ver Afinar falsos positivos.8. Dónde ir a continuación
Detectores regex
Coincide con patrones estructurados — SKUs, números de pedido, formatos —
cuando una denylist literal no es suficiente.
Seguridad de marca
Presets de profanidad, menciones a competidores y seguridad infantil
construidos sobre reglas keyword.
Acciones
Cómo difieren block, mask y flag y cuándo usar cada una.
Referencia de Guardrails
El motor completo — cada tipo de regla, campo y ruta.
llm_judge ejecuta una verificación semántica
contra un modelo del espacio de trabajo.