1. Зачем тестировать политики ai guardrail перед привязкой ключа
У контентной политики два режима отказа, и они тянут в противоположных направлениях:- Пропуски — атака или утечка проскальзывает, потому что не сработало ни одно правило.
- Ложные срабатывания — безобидный промпт блокируется или маскируется, потому что правило слишком широкое.
Оба инструмента выполняются целиком на вашей сессии через management
API (
/api/guardrail/*) — никогда relay-ключ. Они оценивают текст
локально и ничего не отправляют вышестоящей системе, так что тестовый
прогон не стоит квоты модели.2. Вкладка Test — один образец, мгновенный вердикт
У каждого редактора guardrail есть вкладка Test. Вставьте образец, выберите стадию (input или output) и прогоните текущий черновик
политики. Вы получаете полное решение — blocked, mutated,
sanitized текст и список violations — так что можете доказать, что
одно правило делает то, что вы ожидаете, перед сохранением.
Откройте редактор
В консоли перейдите в
/console/guardrails, откройте guardrail и
выберите вкладку Test.3. Вкладка Eval — оцените политику против корпуса
Вкладка Eval прогоняет ваш guardrail против корпуса размеченных образцов и сообщает, как он отработал: precision, recall и F1 в целом и по категории, плюс точные образцы, которые он ошибся. Используйте её, чтобы настроить рубрикуllm_judge, доказать, что правило block ловит известное
семейство атак, или поймать слишком широкий regex, прежде чем он начнёт
отклонять хороший трафик.
Прогон стримит прогресс по ходу (одно событие на завершённый образец) и
сохраняет строку прогона, которую вы можете переоткрыть позже —
queued → running → complete, с правилами, заснятыми во время прогона,
так что позднее редактирование guardrail никогда не переписывает вердикт
старого прогона.
Поставляемые корпусы
Red-team и безобидные наборы, встроенные в шлюз — prompt injection,
jailbreak’и, PII/секреты, многоязычные, чрезмерный отказ. Без
настройки.
Пользовательский JSONL
Загрузите собственный размеченный набор, чтобы измерить политику
против ваших реальных форм трафика.
4. Как выглядит корпус (JSONL)
Корпус — это JSONL — один JSON-объект на строку. Каждая строка — размеченный образец:text для оценки, stage, к которому он
принадлежит, и expected_action, которое политика должна произвести.
Раннер сравнивает фактический вердикт политики с этой меткой, чтобы
оценить прогон.
Справочник полей
Справочник полей
| Поле | Значение |
|---|---|
id | Уникален на строку. Обязателен — строки с пустым id отбрасываются как некорректные. |
text | Промпт или завершение для оценки. Обязателен. |
stage | input или output — правила какой стадии прогнать через образец. |
expected_action | block, mask, flag или "" (безобидный — действие не ожидается). |
category | Произвольная метка, которая раскладывает метрики по категориям. |
Некорректные строки терпимы, не молчаливы
Некорректные строки терпимы, не молчаливы
Строка с плохим JSON или отсутствующим
id/text пропускается и
считается, не фатальна — единственная опечатка никогда не взрывает
весь прогон. Загрузчик увеличивает свой буфер для длинных
многострочных промптов, так что образец со встроенными переводами
строк внутри одной JSON-строки парсится нормально.5. Поставляемые корпусы — red-team наборы, без настройки
Шлюз поставляет каталог курированных корпусов, которые вы можете прогнать немедленно — каждый несёт свой источник, лицензию, языковое покрытие и превью образца в выборщике. Они сгруппированы в 11 категорий, которые охватывают поверхность атаки, которую видит реальный трафик:| Категория | Что зондирует |
|---|---|
prompt_injection | Переопределение инструкций и написанные человеком инъекции. |
jailbreak_single_turn | Реальные jailbreak’и из дикой природы + академический базовый уровень поведения. |
jailbreak_encoded_multiturn | Зонды base64 / ROT13 / leetspeak / разбиения полезной нагрузки. |
indirect_agent | Инъекция, доставленная через выводы инструментов агенту с инструментами. |
multilingual | Red-team промпты носителей на многих языках, вкл. малоресурсные. |
pii_secrets | Emails, SSN, карты, IBAN, API-ключи, AWS-ключи, JWT. |
toxicity | Промпты токсичной генерации и контрасты чрезмерного отказа. |
bias | Зонды стереотипов и дискриминации. |
hallucination | Состязательные наборы фактичности / достоверности. |
hazardous_knowledge | Зонды dual-use хим / био / кибер-знаний. |
over_refusal_benign | Безопасные промпты, которые выглядят небезопасно — ваш страж регрессии ложных срабатываний. |
Поставляемый корпус
owasp_llm_top10 — это размеченный тестовый
набор, покрывающий семейства атак OWASP LLM Top 10 (prompt injection,
jailbreak’и, небезопасный вывод, эксфильтрация данных) — это корпус, чтобы
прогнать eval против него, а не compliance-пакет. Для пакетов
фреймворков, которые материализуют политики, см.
compliance.6. Один конкретный пример — eval пресета PII Shield
Скажем, вы стартовали с пресета PII Shield (единственное правилоpii, mask) и хотите подтвердить, что он ловит формы идентификаторов,
которые модель могла бы выдать, прежде чем привязать его к ключу.
Прогоните его против поставляемого корпуса pii_smoke.
Eval — действие уровня чтения (POST /api/guardrail/:id/eval,
Member) — оно сохраняет строку прогона, но не мутирует политику:
expected против got),
так что вы можете прогрепать корпус и исправить правило. Переоткройте его в
любое время из списка Runs (GET /api/guardrail/:id/eval/runs).
7. Пользовательские корпусы — тестируйте против своего трафика
Поставляемые наборы доказывают, что политика справляется с известными атаками. Чтобы доказать, что она справляется с вашими промптами, загрузите собственный JSONL. Есть три способа указать eval на корпус, и они разрешаются в этом порядке:Ad-hoc загрузка (corpus_data)
Ad-hoc загрузка (corpus_data)
Передайте base64-закодированный JSONL-блоб inline в запросе eval.
Побеждает над всем остальным — итерируйте по черновому набору, не
сохраняя его в рабочее пространство.
Сохранённый корпус (corpus_id)
Сохранённый корпус (corpus_id)
Загрузите один раз через
POST /api/guardrail/eval/corpora
(Developer+), затем ссылайтесь на него по id в будущих прогонах.
Имя должно соответствовать ^[a-z][a-z0-9_]*$ и не может затенять
поставляемое имя.Поставляемый (corpus_name)
Поставляемый (corpus_name)
Назовите один из поставляемых корпусов, как в §6.
GET /api/guardrail/eval/corpora (Member);
загрузка и удаление — Developer+.
8. Чтение счёта
Раннер классифицирует каждый образец в матрицу ошибок и выводит из неё заголовочные метрики:| Термин | Значение |
|---|---|
| Recall | Из промптов, которые должны задеть политику, сколько задело. Низкий recall = пропуски. |
| Precision | Из промптов, которые политика задела, сколько должны были. Низкий precision = ложные срабатывания. |
| F1 | Гармоническое среднее — одно число, которое наказывает однобокую настройку. |
9. Куда двигаться дальше
Настройка ложных срабатываний
Превратите список failures в более строгую, менее шумную политику.
Покрытие стриминга
Какие комбинации стадии/действия держатся на SSE-трафике — проверьте,
прежде чем на это полагаться.
Лента Matches
Когда живо, каждое сработавшее правило попадает сюда — production
аналог eval.
Версионирование
Сравните и откатите политику после того, как eval скажет вам, что
последнее изменение регрессировало.
Связанные страницы guardrail
Связанные страницы guardrail
Связанные концепции и угрозы
Связанные концепции и угрозы
Полный справочник движка
Полный справочник движка
Guardrails — каждый тип правила, поле и
маршрут, включая API eval и корпусов.
