Защита данных (PII)
AITUNNEL сам находит персональные данные в запросах и либо подменяет их синтетикой перед отправкой в модель, либо блокирует запрос. В коде приложения ничего менять не нужно — настройка живёт на API-ключе.
Зачем
Модель — внешний сервис. Если в промпт попали реальные персональные данные, они уходят провайдеру. На шлюзе это можно отсечь: модель не видит оригиналы, риски по 152-ФЗ ниже.
Текущие настройки ключа — в GET /aitunnel/key, объект pii.
Режимы
Маскировка — основной режим. Найденные значения заменяются синтетикой того же формата: ИНН с контрольной суммой, карта с алгоритмом Луна. Запрос уходит в модель уже подменённым. В ответе AITUNNEL ставит оригиналы обратно. Клиент видит свои данные, модель — нет.
Блокировка — если что-то нашлось, запрос до модели не доходит. Клиент получает HTTP 400 с типом sensitive_data_blocked. Так удобно ловить ошибки в сервисах, где персональных данных в промптах быть не должно.
{
"error": {
"code": 400,
"type": "sensitive_data_blocked",
"message": "Обнаружены чувствительные данные: passport, phone",
"metadata": {
"detected": ["passport", "phone"]
},
"request_id": "chat-0J9fQk2vXc8LrT1mNbZa4e"
}
}В error.metadata.detected — какие типы нашлись: email, phone, passport, snils, inn, ogrn, ogrnip, credit_card, jwt, secret, address, person, а для слов из вашего словаря — dictionary. Сами значения в ответ не попадают. Запрос не тарифицируется. Форма ошибки общая для всего API — ошибки и отладка.
Какие данные ищутся
| Тип | Примеры |
|---|---|
user@example.com | |
| Телефон | +7 (900) 123-45-67 |
| Паспорт РФ / загран | 4509 123456 |
| СНИЛС | 112-233-445 95 |
| ИНН | 10 или 12 цифр |
| ОГРН / ОГРНИП | 13 / 15 цифр |
| Банковская карта | алгоритм Луна |
| JWT / API-ключ | eyJ…, sk-…, ghp_… |
| Адрес | ул. Ленина, д. 5 |
| ФИО | Иванов Иван Иванович, Иванов И.И. |
Одиночное имя без отчества («Иван Петров») намеренно не считается ФИО — меньше ложных срабатываний. Такие случаи можно добавить в свой словарь.
Как включить
Откройте ключ
Панель → Ключи, затем нужный ключ.
Включите маскирование
Переключатель «Маскирование персональных данных». Выберите режим: подмена или блокировка.
Отметьте типы
По умолчанию включены все. Можно оставить только ИНН и паспорт, если остальное в вашем контексте не важно.
Сохраните
Те же настройки можно применить к другим ключам одной кнопкой.
Свой словарь
Для значений, которые стандартные детекторы не ловят: внутренние коды клиентов, кодовые имена. До 50 пар «слово → замена». Пустая замена — слово просто вырезается. Словарь работает вместе с выбранными типами; в режиме маскировки замены тоже восстанавливаются в ответе.
Заголовки ответа
Если маскировка сработала, в ответе будут заголовки:
| Заголовок | Значение |
|---|---|
X-AITunnel-Masked | true |
X-AITunnel-Masked-Types | inn,phone,passport |
Если ничего не нашли — заголовков нет. Стриминг stream: true поддерживается.