Псевдоанонимайзер. Обезличивание документов с обратным восстановлением

Ссылка на работу
Pseudonymizer — сервис обезличивания документов для безопасной работы с внешними LLM Что умеет. Контейнеризованное приложение, которое автоматически находит и заменяет чувствительные данные в документах (txt, docx, pdf, md, xlsx): ФИО, телефоны, e-mail, ИНН, номера договоров, а также кастомные сущности из словаря (коды площадок, бренды, артикулы). Веб-интерфейс с drag-and-drop и предпросмотром плюс JSON API для интеграций, включая почтовых воркеров и асинхронные задания. Принцип работы. Гибридный пайплайн детекции: regex → spaCy NER (ru/en) → кастомные словари. Замена детерминистична — одно значение в документе всегда получает один и тот же плейсхолдер (на стабильном хэше), что упрощает ревью и восстановление. При работе с LLM открывается сессия: обезличенный текст уходит в модель, маппинг сессии возвращает исходный контекст по плейсхолдерам. Для крупных файлов — асинхронная очередь с job id вместо блокирующего ответа. Сильные стороны. — Архитектура заставляет пройти шаг восстановления отдельно: сырой PII и внешняя модель не оказываются в одном запросе «по умолчанию». — Разнесённые контуры доступа для оператора инстанса и интеграционных клиентов; rate limiting (slowapi). — TTL и очистка сессий, семафоры на тяжёлые задачи, постраничный режим для крупных PDF. — Наблюдаемость из коробки: Prometheus-метрики, UI мониторинга. — Стек: Python 3.11, FastAPI, spaCy, SQLite, Docker Compose. Артефакт проходит ревью корпоративной ИБ.
https://nikolai-karpov.github.io/my-website/site-pages/pseudonymizer.html