Когда программа отправляет запрос в модель, вместе с вопросом уходит и всё, что вы в него вставили: ключи, пароли, номера документов, персональные данные. Скрытие секретов — это фильтр, который заменяет такие значения условными обозначениями до отправки, а в ответе возвращает их на место. Модель работает с обозначениями, а вы получаете осмысленный ответ с настоящими данными.
Включено по умолчанию? Нет
Честно с самого начала: функция выключена по умолчанию. Включённая, она переписывает запросы, и включать её стоит осознанно, посмотрев на правила. Переключатель живёт в настройках и применяется в течение примерно 15 секунд, без перезапуска.
Пока функция выключена, ничего не меняется вовсе: запросы уходят как есть, и продукт ведёт себя точно так же, как если бы этой возможности не было.
Как устроено правило
Правило состоит из трёх частей:
- Имя — как вы будете называть правило, например «Личные данные клиентов».
- Образец поиска — описание того, что искать. Это «образец» в техническом смысле: специальная запись, которой можно описать, например, «любой номер из одиннадцати цифр» или «слово после „номер:“». Составляется один раз, дальше работает сам.
- Шаблон вывода — как обозначить найденное. В шаблоне ровно один знак
$, на место которого подставляется номер, напримерКЛИЕНТ_$.
К правилу прилагается список самих секретов — конкретных значений, которые нужно прятать.
Что заменяется, а что нет
Образец поиска лишь находит подходящие места, но заменяет продукт только те значения, которые перечислены в списке секретов. Это сделано специально, чтобы не тронуть лишнее: похожий номер или другой ключ останутся как есть.
Практический вывод: список секретов нужно вести вручную. Если секрет не в списке, он уйдёт в модель как есть — даже если образец поиска его находит.
Нумерация и возврат на место
Нумерация сплошная и постоянная: одно и то же значение во всех запросах получает одно и то же обозначение. Если секрет в первый раз стал КЛИЕНТ_1, то и в десятый раз он уйдёт как КЛИЕНТ_1. Так модель не путается, а вы понимаете ответы.
Возврат на место работает во всех ответах, включая те, что приходят по частям. Он продолжает работать даже после того, как правило изменили или удалили: продукт отдельно помнит все когда-либо выданные обозначения. А слова, которые просто выглядят похоже, но секретом не являются, не портятся — они проходят как есть.
Безопасный отказ
Если проверку по правилу выполнить не удалось, запрос не уходит поставщику — вы получаете ошибку. Логика простая: лучше не получить ответ, чем отправить секреты наружу. Так ведёт себя и слишком «жадный» образец поиска, который считает тело запроса дольше отведённого времени.
Отчёты об утечках
Каждый случай замены фиксируется: правило, модель, ключ, время, обозначение и сколько раз значение встретилось. Это раздел «Отчёты об утечках» — он отвечает на вопрос «что именно мы прячем и как часто». Сами секреты в отчётах замаскированы, поэтому историю можно смотреть и спустя месяцы.
Срок хранения отчётов по умолчанию — 90 дней, после чего старые записи удаляются сами. Значение можно изменить в настройках. Если один и тот же запрос приходит повторно, второй раз он не отчитывается — в отчётах не будет искусственного «всплеска утечек».
Тестер правила
Прежде чем включать правило в работу, его можно проверить на живом примере: вставьте фрагмент текста и посмотрите, что именно будет заменено. Номера в предпросмотре свои, отдельные, — они не занимают номера настоящей нумерации. Это самый дешёвый способ убедиться, что образец поиска не задевает лишнего.
Где хранятся правила и соответствия
Правила живут в вашей базе, а вот соответствия между секретами и обозначениями — в отдельном хранилище внутри контейнера, в папке PROXYAGENT_ANONYMIZER_DB. По умолчанию это временная папка контейнера. Если не подключить к ней постоянный том, при пересоздании контейнера соответствия потеряются: старые обозначения перестанут возвращаться на место, а новые начнут нумероваться заново. Подключение тома описано в разделе Размещение и данные.
Чего функция не делает
- Не трогает чат с ИИ-агентом — переписка в чате идёт мимо этого фильтра.
- Не трогает трафик прокси-службы — обычный, не связанный с ИИ трафик фильтруется отдельно, если вообще фильтруется.
Дальше: как пустить через тот же сервер обычный трафик — в разделе Прокси для обычного трафика.