Проект: PII Anonymizer API
Система обработки конфиденциальных данных с сохранением структуры текста
Задачи проекта:
- Создание REST API для обработки конфиденциальных данных
- Реализация механизма токенизации персональной информации
- Обеспечение безопасного хранения маппинга токенов
- Поддержка русскоязычных имен и телефонных номеров
- Интеграция с современными системы хранения данных
Реализованные функции:
🔐 Безопасность данных
- Автоматическое обнаружение PII (имена, телефоны)
- Генерация уникальных псевдорандомных токенов
- Шифрованное хранилище маппинга
- TTL для автоматической очистки данных
🚀 Производительность
- Асинхронная обработка запросов
- Пуллинг Redis-соединений
- Оптимизация NLP-пайплайна
- Распределенная обработка
Технологический стек:
Backend
- Python 3.11 + Quart
- Redis 7.0 (acloud)
- Docker + Docker Compose
NLP
- Natasha (извлечение имен)
- Phonenumbers (валидация телефонов)
- Собственные эвристики
Инфраструктура
- Мониторинг: Grafana
- Деплой: Docker Compose
Деплой и настройка
# Запуск через Docker Compose
version: '3.8'
services:
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
app:
build: .
ports:
- "5000:5000"
environment:
- REDIS_HOST=redis
depends_on:
- redis
volumes:
redis_data:
Примеры работы API
POST /anonymize ➔
{
"sanitized": "[NAME_acd41b], тел. [PHONE_92cc5d]",
"session_id": "eaf696e9-7723-493f-a78a-deca6e2834e2"
}
POST /restore ➔
{
"restored_text": "Иван, тел. 89161234567"
}