1. Зачем проверять небезопасный вывод ИИ на этапе вывода
Проверка ввода ловит плохой промпт. Она не может поймать плохой ответ: модель, которую уговорили выйти за рамки политики, дообученную модель с более слабыми встроенными guardrails или совершенно разумный промпт, давший неразумное завершение. Этап вывода — это место, где вы утверждаете «независимо от причины, этот текст не покидает шлюз». Правило шлюза срабатывает детерминированно и применяется одинаково ко всем моделям за вашим ключом. И каждое сработавшее правило попадает в ленту Matches рабочего пространства — тип правила, действие, этап — так что у вас есть журнал аудита того, что было поймано и что было пропущено.Защита живёт в шлюзе, а не в вашем приложении. Отредактируйте guardrail, и
изменение вступает в силу со следующего вызова для каждого привязанного к нему
ключа — без передеплоя, без изменения SDK. Ваше приложение продолжает вызывать
/v1/chat/completions ровно как раньше.2. Два способа поймать это
Сочетайте детерминированный denylist с семантическим судьёй для глубокой защиты.Буквальный — keyword / regex (нулевая задержка)
Буквальный — keyword / regex (нулевая задержка)
Правило
keyword — это нечувствительное к регистру сопоставление подстроки;
правило regex — паттерн RE2 (линейное время, без обратных ссылок). Оба
работают на горячем пути без сетевого вызова — идеально для известного списка
запрещённых слов, denylist конкурентов или структурного паттерна (утёкший
токен chat-template, безапелляционная фраза «вы имеете право на компенсацию»).Семантический — llm_judge (ловит то, что не может ни один regex)
Семантический — llm_judge (ловит то, что не может ни один regex)
Правило
llm_judge оценивает ответ относительно рубрики, которую вы пишете,
используя модель в вашем рабочем пространстве — токсичность, тон не по бренду,
советы вне политики, которые не охватывает ни один буквальный список. Оно несёт
judge_timeout_ms, по умолчанию fail-open (ошибка судьи логируется, а
ответ продолжается), и его токены тарифицируются как подстрока судьи. См.
Справочник LLM-судьи.3. Один конкретный пример — блокировать токсичное, маскировать не по бренду
Единственный guardrail на этапе вывода, который блокирует токсичный ответ семантически и маскирует запрещённые брендовые термины в том, что осталось:/console/guardrails → New guardrail,
добавьте два правила и привяжите его к ключу из редактора Token (привязка
живёт на ключе как guardrail_id). Конфигурация выполняется в сессии консоли, а
не на вашем relay-ключе; только вызов /v1/* ниже использует ключ sk-orca-....
guardrail_blocked. Если он чист, но упоминает запрещённый термин, этот фрагмент
отображается как типизированная редакция, а остальное проходит дальше.
4. Начните с пресета
Библиотека шаблонов New guardrail поставляет готовые отправные точки в категориях Safety, Brand и Compliance. Пресет — это зерно; примените его, затем редактируйте свободно.| Категория | Пресет этапа вывода для старта |
|---|---|
| Safety | System-Prompt Leak Detector (output), Strong System Prompt Leak — отметить/заблокировать ответы, повторяющие токены системного промпта или chat-template. |
| Brand | Profanity Filter (mask) — работает на обоих этапах и маскирует слова из denylist в ответе. (Пресеты в стиле блокировки Profanity / Brand Safety и Competitor Mentions — это зёрна этапа входа; перенацельте копию на output, если хотите, чтобы они проверяли ответ.) |
| Compliance | Legal Disclaimer Enforce — отметить ответы, дающие безапелляционный юридический/финансовый совет, на проверку командой. |
5. Стриминг: важная оговорка
Применяется ли правило вывода вживую, зависит от действия и от того, стримите ли вы.| Действие | Нестриминг | Стриминг |
|---|---|---|
block | Ответ удержан; HTTP 400 guardrail_blocked | Сканер обрывает поток на лету и выдаёт замещающее сообщение — заблокированный контент никогда не достигает клиента |
mask | Совпадение отредактировано в возвращённом тексте | Сегодня только нестриминг; переписывание потока в полосе в дорожной карте |
flag | Записывает совпадение, ничего не меняет | Записывает совпадение, ничего не меняет |
6. Рекомендуемая форма политики
Наслоите три правила в одном guardrail
-
keyword/regexнаoutput— поимка с нулевой задержкой для известных запрещённых терминов и структурных паттернов. -
llm_judgeнаoutput— семантическая поимка токсичности / не по бренду / вне политики для того, что пропускает буквальный список. -
Выкатывайте сначала через
flag, наблюдайте ленту Matches, затем повышайте доblock, как только частота ложных срабатываний станет приемлемой. См. Режимы применения.
Справочник Guardrails
Полный справочник по типам правил, действиям, этапам, LLM-судье, пресетам,
evaluation-харнессу и ленте Matches.
Эксфильтрация данных
Остановка ухода чувствительных данных в ответе модели или вызове инструмента.
