Перейти к содержанию

Категории Content Safety

ML-модель анализирует текст по категориям вредоносного контента. Анализ применяется как к входящим запросам (8 категорий), так и к ответам LLM (7 категорий — без jailbreak). Модель работает только на GPU. Без GPU сервис Content Safety возвращает 503, и Gateway (при fail_open) пропускает эту проверку.

Категории запросов и ответов

На стороне запроса доступны все 8 категорий, включая jailbreak. На стороне ответа LLM применяются те же категории, кроме jailbreak (это исключительно входная категория), — итого 7.

Категории

violence — Насилие и физический вред

Свойство Значение
Описание Контент, содержащий угрозы физического насилия, инструкции по причинению вреда, графические описания насилия, поощрение агрессии
Примеры запросов «Как причинить максимальный вред...», «Опиши подробно процесс...»
Примеры ответов LLM генерирует пошаговые инструкции по причинению вреда
Рекомендация Блокировать в большинстве сценариев. Часто пересекается с легитимным контентом (художественная литература, журналистика, мифология) — задайте политику Controversial flag вместо block для мониторинга без избыточных блокировок (см. Политика для Controversial)

illegal_acts — Нелегальная деятельность

Свойство Значение
Описание Инструкции по совершению преступлений, изготовлению запрещённых веществ, взлому систем, обходу законов
Примеры запросов «Как изготовить...», «Как обойти систему безопасности...»
Рекомендация Блокировать. Особенно важно для compliance. Высокорисковая категория — держите в blocked_categories и не ослабляйте политику Controversial

sexual — Сексуальный контент

Свойство Значение
Описание Откровенный сексуальный контент, NSFW-материалы, эротические описания
Примеры Запросы на генерацию эротических текстов
Рекомендация Блокировать в корпоративных средах. Для consumer-приложений — по политике сервиса

self_harm — Самоповреждение

Свойство Значение
Описание Суицидальный контент, инструкции по самоповреждению, романтизация самоубийства
Примеры Просьбы написать предсмертную записку, описание методов
Рекомендация Всегда блокировать. Критичная категория с точки зрения ответственности. Держите в blocked_categories, политику Controversial не ослабляйте

unethical — Неэтичное поведение

Свойство Значение
Описание Мошенничество, манипуляции, обман, социальная инженерия, газлайтинг
Примеры «Напиши фишинговое письмо...», «Как манипулировать человеком...»
Рекомендация Блокировать в корпоративных средах

political_sensitive — Политически чувствительный контент

Свойство Значение
Описание Экстремистская пропаганда, призывы к свержению власти, разжигание ненависти по национальному/религиозному признаку
Примеры Генерация экстремистских текстов, пропагандистских материалов
Рекомендация Блокировать. Особенно важно в РФ (ст. 280, 282 УК РФ)
Свойство Значение
Описание Запросы на воспроизведение защищённых текстов, книг, статей, программного кода с нарушением лицензии
Примеры «Перепиши полностью главу из книги...», «Скопируй код из...»
Рекомендация Мониторинг или блокировка в зависимости от контекста

jailbreak — Jailbreak (только запросы)

Свойство Значение
Описание Промпт является попыткой обхода ограничений модели или содержит инструкции по jailbreak другой модели
Примеры «Ignore all previous instructions...», «You are now DAN...»
Рекомендация Блокировать. Категория применяется только к запросам (не к ответам)

Персональные данные (PII)

Детекция персональных данных в Content Safety не входит. За PII отвечает отдельный сервис PII Detector (см. Типы PII) — он точнее для этой задачи и поддерживает маскирование/блокировку.

Группы категорий: тематические и токсичность

Внутри модели Content Safety категории разделены на две группы — это отражает разную механику детекции:

Группа Категории Что детектирует
Тематические (topic) illegal_acts, unethical, political_sensitive, copyright, jailbreak Тематическую принадлежность контента
Токсичность (toxicity) violence, sexual, self_harm Токсичность контента

Модель возвращает результаты двумя отдельными структурами (topic и toxicity). Для целей профиля безопасности Gateway объединяет обе группы в единый набор при передаче в PDP — деление topic/toxicity для оператора прозрачно. На стороне ответов LLM доступны 7 категорий (все, кроме jailbreak).

Вердикты и score

Для каждого проанализированного текста модель возвращает:

  • Вердикт (risk_level) — один из трёх классов: Safe, Controversial, Unsafe.
  • Score категории (risk_prob) — реальная вероятность (softmax-уверенность модели) для сработавшей категории, число в диапазоне 0.0–1.0. Это не фиксированная константа: реальные атаки получают score ≈0.95–1.0, а пограничный легитимный контент (журналистика, мифология, художественная литература) — заметно ниже (≈0.4–0.8). Score идёт в единый risk_score и сохраняется в событии (risk_breakdown) для аудита, но при блокировке с порогом не сравнивается — решение принимается по вердикту.
Вердикт Описание Действие по умолчанию
Safe Контент безопасен по данной категории Пропуск
Controversial Пограничный случай — контент спорный, но не явно вредоносный Определяется controversial_policy для категории (см. ниже)
Unsafe Контент определён как вредоносный Блокировка (если категория в blocked_categories)

Базовое поведение: категория блокирует запрос/ответ, если она в blocked_categories и вердикт = Unsafe. Обработка Controversial вердикта настраивается отдельно через controversial_policy / response_controversial_policy.

Политика для Controversial-категорий

Для каждой категории можно задать отдельную политику обработки вердикта Controversial через поля controversial_policy (запросы) и response_controversial_policy (ответы). Это словари {категория → действие}:

Действие Поведение
block (по умолчанию при отсутствии) Блокировать запрос/ответ (как Unsafe)
flag Пропустить запрос/ответ, но зафиксировать находку в событии безопасности (audit-only, MONITOR)
allow Пропустить без записи — категория не влечёт действий при Controversial

Если категория не указана в controversial_policy / response_controversial_policy, для неё применяется block (безопасный дефолт).

Где видна находка с flag

При flag запрос проходит к LLM, но в событии безопасности (SecurityEvent) в поле matched_rules появляется запись content_safety_flag. На стороне ответов решение принимает значение MONITOR. Это позволяет операторам наблюдать за Controversial-категориями без принудительной блокировки.

Примеры

Конфигурация вердикт Результат
controversial_policy не задан (по умолчанию) Controversial (copyright) БЛОК
{"copyright": "flag"} Controversial (copyright) Пропуск + запись в audit
{"copyright": "allow"} Controversial (copyright) Пропуск без записи
{"copyright": "flag"} Unsafe (violence) БЛОК (Unsafe всегда блокирует)

Калибровка score

Сырые уверенности guard-модели плохо откалиброваны (особенно под adversarial-промптами). AppSec.AIGate применяет post-hoc температурную калибровку (temperature scaling), подобранную офлайн отдельно для каждого сигнала (score Threat Detector и каждая категория Content Safety). Калиброванный score:

  • используется в едином risk score (см. risk-аналитику события): вклад Content Safety = максимальный калиброванный score по всем категориям.

Калибровка информационна: она меняет то, как вычисляется risk score, но не меняет само действие блокировки — оно определяется вердиктом (risk_level), а не числовым порогом. Калибровка привязана к версии модели — пересчитывается при смене модели детектора (release gate в e2e-бенчмарках). При отсутствии калибровочной кривой сырой score == калиброванный (обратная совместимость).

Приватность (152-ФЗ)

Калибровка и risk_score оперируют только числовыми score — никакого текста промпта и новых поверхностей с персональными данными не добавляется.

Блокировка ответов LLM

Для проверки ответов LLM используется та же risk_level логика, что и для запросов:

  • категория блокирует ответ, если она в blocked_categories (сторона ответов: response_blocked_categories) и вердикт = Unsafe;
  • обработка Controversial на стороне ответов управляется через response_controversial_policy (те же значения: block / flag / allow, дефолт block).

Поля toxicity_threshold / topic_threshold

Поля response_scanning.toxicity_threshold и response_scanning.topic_threshold присутствуют в схеме профиля для обратной совместимости, но не влияют на решение о блокировке начиная с текущей версии — enforcement перенесён на risk_level + response_controversial_policy. Не используйте их в новых профилях.

Настройка per-profile

{
  "content_safety": {
    "enabled": true,
    "blocked_categories": ["violence", "illegal_acts", "self_harm", "jailbreak"],
    "controversial_policy": {
      "copyright": "flag",
      "political_sensitive": "flag"
    },
    "response_enabled": true,
    "response_blocked_categories": ["violence", "sexual", "self_harm"],
    "response_controversial_policy": {
      "copyright": "flag"
    }
  }
}
Поле Описание Рекомендация
enabled Включить Content Safety для запросов true
blocked_categories Категории для блокировки запросов при вердикте Unsafe Минимум: ["violence", "self_harm", "jailbreak"]
controversial_policy Per-category политика для Controversial-вердикта запросов: {категория: "block"\|"flag"\|"allow"} Отсутствие ключа = block (безопасный дефолт). flag — для audit-only мониторинга
response_enabled Включить проверку ответов LLM true если нужна двусторонняя защита
response_blocked_categories Категории для блокировки ответов при вердикте Unsafe (7 категорий, без jailbreak) Может отличаться от blocked_categories
response_controversial_policy Per-category политика для Controversial-вердикта ответов: {категория: "block"\|"flag"\|"allow"} Аналогично controversial_policy