Код Middle Безопасность LLM обновлено

Маскирование персональных данных перед отправкой в модель

Условие

Напишите mask_pii(text): замените в тексте

  • адреса почты (вида имя@домен.зона, где имя и домен из латинских букв, цифр, ., _, -, + в имени) на [EMAIL];
  • российские номера телефонов на [PHONE]: начинаются с +7 или 8, далее 10 цифр, между группами могут стоять пробелы, дефисы и скобки (например, +7 (912) 345-67-89, 89123456789).

Верните словарь {"text": замаскированный текст, "emails": число замен почт, "phones": число замен телефонов}. Сначала маскируйте почты, затем телефоны.

Примеры

mask_pii("Пишите на ivan.petrov@mail.ru") // {"text":"Пишите на [EMAIL]","emails":1,"phones":0}
mask_pii("Тел. +7 (912) 345-67-89, звонить вечером") // {"text":"Тел. [PHONE], звонить вечером","emails":0,"phones":1}
mask_pii("89123456789 и 8-912-345-67-89") // {"text":"[PHONE] и [PHONE]","emails":0,"phones":2}

Как подойти

Подсказки: 2
  1. re.subn возвращает строку и число замен.
  2. Между цифрами телефона допускайте [\s\-()]*.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.