Локальная проверка персональных данных перед запросом к ИИ
Если сотруднику нужно попросить нейросеть разобрать выгрузку из CRM, самый простой путь — прикрепить исходный файл. Именно в этот момент в запрос часто попадают имя клиента, телефон, почта, номер договора и внутренний комментарий менеджера. Для чернового анализа эти сведения обычно не нужны. Их можно заменить локально, до обращения к облачной модели, а после получения ответа вернуть только те обозначения, которые действительно нужны владельцу процесса.
Ниже — рабочая схема для небольшого локального маскировщика. Это не «волшебная защита» и не повод отправлять в модель всё подряд. Инструмент закрывает повторяющуюся техническую операцию, а решение о допустимости запроса остаётся за человеком.
1. Опишите границу задачи
Сначала запишите, что именно должна вернуть модель. Например: «сгруппировать причины возвратов по тексту комментария и посчитать доли». Для такой задачи нужны дата, категория и обезличенный комментарий; имя, телефон и номер заказа не влияют на вывод.
Затем составьте таблицу полей:
| Поле | Нужно модели | Действие локального инструмента |
|---|---|---|
| Имя клиента | Нет | заменить на КЛИЕНТ_001 |
| Нет | заменить на EMAIL_001 | |
| Телефон | Нет | заменить на ТЕЛЕФОН_001 |
| Сумма заказа | Да | оставить, если она нужна расчёту |
| Комментарий | Да | очистить от случайных контактов |
Такая карта предотвращает главную ошибку: маскировать только очевидные колонки и забывать о свободном тексте.
2. Подготовьте копию и словарь замен
Никогда не запускайте обработку поверх оригинала. Создайте рабочую копию с датой и номером версии, а исходный файл оставьте в защищённой папке. Маскировщик должен формировать два результата: очищенный документ для модели и локальный словарь соответствий. Словарь нужен только для обратной расшифровки и не должен покидать компьютер.
Для одинакового контакта используйте одинаковую метку во всём файле. Если anna@example.com встречается в пяти строках, везде должен появиться EMAIL_001, а не пять разных значений. Удобный формат записи — отдельный JSON или CSV с правами доступа только для владельца задачи. После завершения работы его нужно удалить по правилам вашей компании, если обратная расшифровка больше не требуется.
3. Настройте поиск, а не только замену
Начните с явных полей таблицы, затем добавьте шаблоны для текста. Для e-mail ищите последовательность с @ и доменной частью, для телефона — несколько цифр с возможными пробелами, скобками и дефисами. Отдельно проверьте номера карт, паспортов, договоров и ссылки с токенами: их формат зависит от конкретной компании.
Не делайте регулярное выражение единственным барьером. Перед заменой покажите оператору список найденных фрагментов с указанием строки и типа данных. Если инструмент не уверен, пусть пометит значение как «требует проверки», а не удаляет его молча. В свободном комментарии «позвонить Ивану завтра» имя может не совпасть с формальным шаблоном, но всё равно быть персональными данными.
4. Проведите контрольный прогон
Создайте небольшой тестовый файл из десяти строк. Включите нормальные и пограничные случаи: международный телефон, адрес без имени, два контакта в одной строке, перенос строки внутри e-mail, пустое значение и похожую на почту служебную строку. После обработки проверьте четыре вещи:
- ни один исходный идентификатор не остался в очищенном файле;
- одинаковые значения получили одинаковые метки;
- числа, даты и категории, необходимые для анализа, не изменились;
- структура CSV, XLSX или JSON открывается без повреждённых колонок.
Сохраните отчёт проверки: сколько значений найдено по каждому типу, сколько строк отправлено на ручной просмотр и когда была запущена версия инструмента. Это пригодится при разборе инцидента и при повторном запуске на новом наборе.
5. Отправьте минимальный набор
После локальной очистки удалите неиспользуемые колонки и старые листы. В запросе к модели явно напишите, что обозначения вроде EMAIL_001 — это условные идентификаторы, а не настоящие контакты. Не просите нейросеть восстановить личность по косвенным признакам и не прикладывайте словарь замен.
Проверяйте также настройки самого сервиса: срок хранения запросов, использование данных для обучения, права участников команды и доступ к журналам. Для чувствительных проектов полезно провести тот же процесс на локальной модели; вопросы контекстного окна и ограничений разобраны в материале о локальной работе без облака.
6. Оцените, не испортило ли маскирование результат
Сравните два небольших набора: исходный, который остаётся внутри компании, и обезличенный. Оцените не совпадение текста, а полезность вывода: сохранились ли группы причин, суммы, даты и связи между строками. Если замена скрыла важный контекст, измените правило для этого поля, а не возвращайте в запрос весь оригинал.
При обнаружении пропущенного секрета остановите процесс, удалите отправленный запрос по доступной процедуре и зафиксируйте, какой шаблон не сработал. Полезно провести отдельную проверку ответа нейросети: маскирование снижает риск утечки, но не делает вывод модели автоматически правильным.
Чек-лист перед отправкой
- Цель анализа и необходимые поля записаны.
- Оригинал сохранён отдельно, а словарь замен не покидает компьютер.
- Проверены таблица и свободный текст.
- Пограничные случаи прошли контрольный прогон.
- Из запроса удалены лишние колонки, листы и вложения.
- Настройки хранения данных у выбранной модели проверены.
- После ответа результат сверяется человеком, а не публикуется автоматически.
Повторная проверка после обновления правил
Шаблоны поиска меняются вместе с форматами выгрузок. После добавления нового правила возьмите прежний контрольный файл и отдельный набор из пяти новых строк. Сравните список найденных значений, число ручных проверок и структуру результата. Если новый шаблон начал забирать номера заказов или даты, верните его в режим «требует проверки» и уточните границу поля.
Проверяйте также отрицательные случаи: служебный адрес, тестовый номер и строку с похожим, но не персональным идентификатором. Маскирование не должно удалять данные, нужные для расчёта, и не должно оставлять исходный контакт в соседней колонке или метаданных файла. Сохраняйте версию правил рядом с отчётом, чтобы повторный запуск был воспроизводимым.
Локальный маскировщик полезен как аккуратный шлюз между рабочими данными и моделью. Его качество измеряется не количеством замен, а тем, что нужный анализ сохраняется, а лишние идентификаторы действительно не покидают вашу инфраструктуру.