1. 왜 출력 스테이지에서 안전하지 않은 ai 출력을 검사하는가
입력 검사는 나쁜 프롬프트를 포착합니다. 나쁜 답변은 포착할 수 없습니다: 정책에서 벗어나도록 유도된 모델, 내장 guardrail이 더 약한 파인튠, 또는 비합리적 완성을 만든 완벽하게 합리적인 프롬프트. 출력 스테이지는 “이유와 무관하게, 이 텍스트는 게이트웨이를 떠나지 않는다”고 단언하는 곳입니다. 게이트웨이 규칙은 결정론적으로 발동하며 여러분의 키 뒤의 모든 모델에 걸쳐 동등하게 적용됩니다. 그리고 발동하는 모든 규칙은 워크스페이스 Matches 피드에 떨어집니다 — 규칙 타입, 액션, 스테이지 — 따라서 무엇이 포착되고 무엇이 통과되었는지의 감사 추적을 갖게 됩니다.방어는 여러분의 앱이 아니라 게이트웨이에 존재합니다. guardrail을
편집하면 그것에 연결된 모든 키에 대해 다음 호출에서 변경이 적용됩니다 —
재배포 없음, SDK 변경 없음. 여러분의 앱은 이전과 정확히 동일하게
/v1/chat/completions를 계속 호출합니다.2. 그것을 포착하는 두 가지 방법
심층 방어를 위해 결정론적 거부 목록과 의미 판단자를 짝지으세요.문자 그대로 — keyword / regex (지연 없음)
문자 그대로 — keyword / regex (지연 없음)
keyword 규칙은 대소문자 구분 없는 부분 문자열 매치이고; regex
규칙은 RE2 패턴입니다(선형 시간, 역참조 없음). 둘 다 네트워크 호출 없이
핫 패스에서 실행됩니다 — 알려진 금지어 목록, 경쟁사 거부 목록, 또는
구조적 패턴(유출된 채팅 템플릿 토큰, 단정적 “you are entitled to
damages” 문구)에 이상적입니다.의미적 — llm_judge (어떤 regex도 못 잡는 것을 포착)
의미적 — llm_judge (어떤 regex도 못 잡는 것을 포착)
llm_judge 규칙은 워크스페이스의 모델을 사용해 여러분이 작성한
루브릭에 대해 응답을 평가합니다 — 유해성, 브랜드에 어긋난 톤, 어떤
문자 그대로의 목록도 포착하지 못하는 정책 외 조언. 이는
judge_timeout_ms를 가지며, 기본적으로 fail-open이고(판단자 오류는
로깅되고 응답은 계속됨), 그 토큰은 판단자 서브라인으로 청구됩니다.
LLM judge 레퍼런스를 참조하세요.3. 하나의 구체적 예시 — 유해한 것은 차단, 브랜드에 어긋난 것은 마스킹
유해한 응답을 의미적으로 차단하고 남은 무엇에서든 금지된 브랜드 용어를 마스킹하는 단일 출력 스테이지 guardrail:/console/guardrails → New guardrail을
열고, 두 규칙을 추가하고, Token 편집기에서 키에 연결합니다(바인딩은
guardrail_id로 키에 존재합니다). 구성은 릴레이 키가 아니라 여러분의 콘솔
세션에서 실행됩니다; 아래의 /v1/* 호출만 sk-orca-... 키를 사용합니다.
guardrail_blocked으로
보류됩니다. 깨끗하지만 금지된 용어를 언급하면, 그 구간은 타입이 지정된
편집으로 렌더링되고 나머지는 통과합니다.
4. 프리셋에서 시작하기
New guardrail 템플릿 라이브러리는 Safety, Brand, Compliance 카테고리에서 즉시 사용 가능한 시작점을 제공합니다. 프리셋은 시드입니다 — 적용한 뒤 자유롭게 편집하세요.| 카테고리 | 시작할 출력 스테이지 프리셋 |
|---|---|
| Safety | System-Prompt Leak Detector (output), Strong System Prompt Leak — 시스템 프롬프트나 채팅 템플릿 토큰을 반향하는 응답을 flag/block. |
| Brand | Profanity Filter (mask) — 두 스테이지 모두에서 실행되며 응답에서 거부 목록에 오른 단어를 마스킹. (block 스타일 Profanity / Brand Safety 및 Competitor Mentions 프리셋은 입력 스테이지 시드입니다; 답변을 검사하고 싶으면 복사본을 output으로 재타깃하세요.) |
| Compliance | Legal Disclaimer Enforce — 단정적 법률/금융 조언을 제공하는 응답을 팀 검토를 위해 flag. |
5. 스트리밍: 중요한 주의 사항
출력 규칙이 라이브로 강제되는지 여부는 액션과 여러분이 스트리밍하는지에 달려 있습니다.| 액션 | 비스트리밍 | 스트리밍 |
|---|---|---|
block | 응답 보류; HTTP 400 guardrail_blocked | 스캐너가 스트림을 비행 중에 끊고 대체 메시지를 내보냄 — 차단된 콘텐츠가 클라이언트에 결코 도달하지 않음 |
mask | 반환된 텍스트에서 매치 편집됨 | 오늘은 비스트리밍 전용; 인밴드 스트림 재작성은 로드맵에 있음 |
flag | 매치 기록, 아무것도 바꾸지 않음 | 매치 기록, 아무것도 바꾸지 않음 |
6. 권장 정책 형태
하나의 guardrail에 세 규칙 계층화
-
output의keyword/regex— 알려진 금지 용어와 구조적 패턴에 대한 지연 없는 포착. -
output의llm_judge— 문자 그대로의 목록이 놓치는 것에 대한 의미적 유해성 / 브랜드 어긋남 / 정책 외 포착. -
먼저
flag로 롤아웃하고, Matches 피드를 보고, 오탐률이 수용 가능해지면block으로 격상하세요. 강제 모드를 참조하세요.
Guardrails 레퍼런스
규칙 타입, 액션, 스테이지, LLM 판단자, 프리셋, eval 하네스, 그리고
Matches 피드에 대한 전체 레퍼런스.
데이터 유출
민감 데이터가 모델의 응답이나 툴 호출로 떠나는 것을 막기.
