Close
Оставьте ваши контакты
Какой способ общения вам удобен?
Примеры работ и кейсы по ИИ, комплексному продвижению, созданию сайтов, рекламе

Mask Gate: сервис, который не пускает персональные данные в нейросети

ИИ
Что это: веб-сервис и API, которые находят и обезличивают персональные данные в тексте и файлах до того, как их отправят в ChatGPT или другую нейросеть
Моя роль: продукт, разработка через ИИ-агентов, маркетинг и аналитика
Срок: 2,5 месяца от первого коммита до рабочего прода

Как возникла задача

Юрист копирует в ChatGPT договор, чтобы тот нашёл кривую формулировку. Кадровик просит нейросеть разложить резюме по критериям. Бухгалтер вставляет выгрузку контрагентов и просит свести суммы. Никто из них не делает ничего плохого. Они работают быстрее, и это нормально.
Дальше начинается дорогое. С 30 мая 2025 года утечка персональных данных стоит компании от 3 до 15 млн ₽ в зависимости от числа пострадавших, а повторная превращается в оборотный штраф до 3 % выручки. Классические DLP этот канал не закрывают: они охраняют корпоративный периметр, а сотрудник уносит данные в личный браузер с личного ноутбука. Дыра остаётся открытой, потому что закрывать её нечем — тяжёлые системы сюда не встают по размеру.
Задача была сформулирована узко: инструмент для одного действия. Проверить текст или файл и убрать из него всё, что нельзя показывать наружу.

Что в итоге собрано

Движок не ищет по маске. Такой поиск обманывается тривиально, поэтому проверка идёт по контрольным суммам: номер карты считается по алгоритму Луна, ИНН по контрольному разряду. Из-за этого в отчёте почти нет мусора — а именно мусор обычно убивает доверие к сканеру на первом же документе.
Перед распознаванием текст проходит нормализацию, которая снимает обфускацию: кириллические гомоглифы вместо латинских букв, zero-width символы, base64, percent-encoding, hex, HTML-сущности и вложенные кодировки. Отдельно работает скользящее окно по переписке: сервис держит последние пять сообщений в памяти пятнадцать минут и сканирует склейку, поэтому значение, размазанное по нескольким репликам чата, всё равно находится. В лог этот буфер не пишется никогда.
С файлами сервис работает в 11 форматах, включая сканы: отсканированные страницы распознаёт локальный OCR на русском и английском, до 50 страниц на документ. На выходе тот же формат — документ остаётся рабочим, а не превращается в картинку.
Маскирование обратимое. В текст подставляются токены, ключи к ним лежат в vault под AES-256-GCM, исходный текст на диск не пишется. Взял документ, замаскировал, отправил в нейросеть, получил ответ, вернул значения обратно.
Пользоваться можно из веб-кабинета, из надстройки Excel, из расширения браузера и по API. Для компаний есть шлюз к нейросети по схеме BYOK: запрос маскируется на входе, значения восстанавливаются в ответе, а ключ и адрес модели приносит сам пользователь, чтобы данные не проходили через чужие руки.

Как это сделано за 2,5 месяца

Разработку вели ИИ-агенты. Не в режиме «попроси модель написать код», а по протоколу, который я собрал под эту задачу. Три правила дали основной эффект.
Первое: тесты пишутся до кода. Второе: свою работу мержить нельзя, каждую правку проверяет независимый агент-ревьюер в отдельной копии репозитория, и он же ловит то, что автор пропустил по определению. Третье: релиз не выходит, пока не пройдены гейты — тесты с порогом покрытия, отдельная проверка качества детекции по recall и precision, сканер уязвимостей на критические, аудит зависимостей, поиск секретов.
За два с половиной месяца это дало 541 коммит и 44 релиза. В коде 1 435 тестовых функций в 125 файлах, 15,7 тысячи строк Python и 9 тысяч строк фронтенда. По моей оценке, такой объём сопоставим с работой небольшой команды за тот же срок — но дело даже не в объёме. Дело в том, что продакшн не падал: прод сейчас на версии v1.1.20, и каждая версия выходила через тег с пройденными гейтами.

Проверка рынка

Продукт работал. Дальше нужно было понять, есть ли на него платный спрос, и я начал с арифметики, а не с рекламного кабинета.
Спрос в поиске оказался крошечным. «Маскирование персональных данных» — 17 показов в месяц. «Программа для обезличивания персональных данных» — 44. Рядом живёт фраза «обезличивание персональных данных» с 3 268 показами, и она выглядит как спасение, пока не посмотришь, из чего состоит: справка про закон, приказ 996, шаблоны документов. Люди изучают тему. Инструмент они не ищут.
Дальше был тестовый бюджет на рекламу: 12 883 показа, 2 601 клик, 608 визитов по счётчику. И вот тут пригодилась привычка сверять источники. Кабинет, Метрика и логи сервера показали три разные картины, потому что слепы по-своему: счётчик стоит под согласием на cookies и теряет часть визитов, кабинет считает клики, которые до сайта не доходят. Поведение видно только в логах, и там картина однозначная: люди доходили до проверки текста, а до покупки не доходил никто.
Экономика закрыла вопрос. Привлечение одной регистрации стоило около 178 ₽ при чеке 100 ₽. Это не вопрос оптимизации воронки: при такой арифметике канал убыточен при любой конверсии, и никакие правки объявлений этого не меняют.

Решение

Реклама выключена. Точнее, партнёрская сеть и автотаргетинг, которые дают объём без спроса. Осталась проверка поиска малым бюджетом, чтобы не пропустить изменение рынка.
Центр тяжести перенесён в B2B. Логика простая: продукт закрывает риск, у которого есть цена в рублях — штраф и требования 152-ФЗ.

Что работает сегодня

Прод — версия v1.1.20. Работают 11 форматов, распознавание имён и организаций, vault, шлюз к нейросети, оплата через ЮKassa. Серверы в России, платёжные данные через сервис не проходят.
Качество на собственном синтетическом корпусе из 404 записей: recall 99,7 % по структурированным категориям, precision от 91 % до 100 % по категориям. Подчёркиваю: это мои замеры на своём корпусе, а не независимый аудит, и я не выдаю их за него. По скорости проверка письма или страницы занимает единицы миллисекунд, 100 КБ текста — около секунды.
Материалы для государственной регистрации программы для ЭВМ подготовлены.

Что я вынес из проекта

Спрос проверяется до разработки, и проверяется цифрами. Фраза, вокруг которой пишут статьи, может не стоить ничего. Разница между 3 268 запросами и 44 видна за десять минут в Wordstat, если знать, куда смотреть.
Один счётчик всегда врёт. Кабинет, аналитика и логи сервера показывают разное, и правда не в среднем между ними. Решение принимается по тому источнику, который видит поведение.
Экономику считают до рекламы. Если привлечение дороже чека, канал мёртв, и тестировать его дальше — это платить за подтверждение известного.
ИИ-агенты дают скорость только вместе с дисциплиной. 1 435 тестов и обязательное независимое ревью — это то, что позволило 541 коммиту не превратиться в кашу за два с половиной месяца.

Инструменты

Python, FastAPI, SQLite, Docker, nginx, ЮKassa, Tesseract OCR, natasha, pytest, GitHub Actions с self-hosted раннером, Trivy, Яндекс.Директ и Метрика, Wordstat. Разработка — ИИ-агентами в ролях исполнителя и независимого ревьюера.