GoRouter

Защита чувствительных данных

Проверка текста 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

Если совпадений нет, этих заголовков нет.

HTTPerror.codeЗначение
400sensitive_data_rejectedВключено действие reject, найдена выбранная категория.
413sensitive_data_too_largeОбъём анализируемого текста превышает 1 МиБ.
503sensitive_data_unavailableСервис защиты не ответил за отведённое время или недоступен.
503sensitive_data_settings_unreadableНе удалось прочитать правила или одна замена назначена разным терминам в объединённом словаре.

Ошибки содержат только категории и никогда не включают найденные значения. Если защита включена, но обязательная проверка текста не может быть выполнена, поддерживаемый запрос не отправляется провайдеру.

Сбор данных и ограничения

Для личного аккаунта включение защиты не отменяет скидку по добровольной программе сбора данных. Запросы организаций исключены из программы.

GoRouter не гарантирует 100% обнаружение чувствительных данных. Некоторые значения могут остаться незамеченными и быть отправлены провайдеру без замены или блокировки. Функция снижает риск и не заменяет классификацию данных, контроль доступа и проверку типичных для вашего приложения запросов.

На этой странице