Защита чувствительных данных
Проверка текста API-запросов и веб-чата с правилами аккаунта, пространства и ключа.
Что делает защита
Защита проверяет текст в запросах Chat Completions и Responses, включая веб-чат, до отправки провайдеру. По умолчанию она выключена:
replaceзаменяет найденные чувствительные значения;rejectвозвращает400 sensitive_data_rejectedи не отправляет запрос дальше.
В режиме replace исходные значения восстанавливаются в ответе, если модель вернула
замену без изменений. Если модель изменила замену, восстановление не гарантируется.
Область действия
Только текст. Поддерживаются POST /api/v1/chat/completions,
POST /api/v1/responses и текстовые запросы веб-чата, в том числе SSE.
Проверяются тексты сообщений и инструкций, текстовые content parts и
аргументы function/tool calls. Идентификаторы моделей,
поля маршрутизации, схемы и описания инструментов, изображения, аудио, файлы и base64
не сканируются. Вложения и остальные endpoints, включая embeddings, rerank,
генерацию изображений, аудио и видео, разрешены без проверки чувствительных данных.
Категории: email, российские телефоны и паспорта, СНИЛС, ИНН, ОГРН/ОГРНИП, банковские карты, credentials, адреса и ФИО.
Где настроить
| Уровень | Где настроить | Область действия |
|---|---|---|
| Аккаунт | Защита в разделе аккаунта | Все пространства аккаунта, их API-ключи и веб-чат. |
| Пространство | Пространства → Защита | API-ключи и веб-чат выбранного пространства. |
| API-ключ | Редактирование API-ключа → Защита чувствительных данных | Только этот ключ. |
Защиту аккаунта и пространства настраивают владелец и администраторы; участник может настраивать свои ключи. Для аккаунта и пространства нажмите «Сохранить защиту данных».
Наследование
Правила наследуются в порядке аккаунт → пространство → ключ:
- Категории включённых правил объединяются.
- Если во включённом правиле выбрано
reject, оно применяется вместоreplace. - Словари объединяются; для одинакового термина действует замена верхнего уровня.
- Выключение защиты на нижнем уровне не отключает унаследованную защиту.
Можно включить защиту только для одного ключа. Веб-чат использует правила аккаунта и выбранного пространства.
Настройка ключа через API
Передайте sensitive_data при создании или изменении ключа через Management API:
{
"sensitive_data": {
"enabled": true,
"action": "replace",
"categories": ["email", "phone", "passport", "snils", "inn", "ogrn", "bank_card", "credential", "address", "full_name"],
"dictionary": [
{ "term": "CLIENT-42", "substitute": "CLIENT-TEST" }
]
}
}На каждом уровне словарь содержит до 50 пар, каждое поле — до 256 символов. Термины и непустые замены
не должны повторяться. Пустой substitute удаляет термин при сохранении.
GET /api/v1/key не раскрывает словарь и возвращает только dictionary_count.
Заголовки и ошибки
Если запрос был изменён, GoRouter добавляет:
X-GoRouter-Sensitive-Data: replaced
X-GoRouter-Sensitive-Data-Categories: email,phoneЕсли совпадений нет, этих заголовков нет.
| HTTP | error.code | Значение |
|---|---|---|
| 400 | sensitive_data_rejected | Включено действие reject, найдена выбранная категория. |
| 413 | sensitive_data_too_large | Объём анализируемого текста превышает 1 МиБ. |
| 503 | sensitive_data_unavailable | Сервис защиты не ответил за отведённое время или недоступен. |
| 503 | sensitive_data_settings_unreadable | Не удалось прочитать правила или одна замена назначена разным терминам в объединённом словаре. |
Ошибки содержат только категории и никогда не включают найденные значения. Если защита включена, но обязательная проверка текста не может быть выполнена, поддерживаемый запрос не отправляется провайдеру.
Сбор данных и ограничения
Для личного аккаунта включение защиты не отменяет скидку по добровольной программе сбора данных. Запросы организаций исключены из программы.
GoRouter не гарантирует 100% обнаружение чувствительных данных. Некоторые значения могут остаться незамеченными и быть отправлены провайдеру без замены или блокировки. Функция снижает риск и не заменяет классификацию данных, контроль доступа и проверку типичных для вашего приложения запросов.