Files
drhider/History/2026-07-12-sonnet-response-v3-numbering.md

2.1 KiB

Ответ Соннета v3 — нумерация вместо генерации фейков (2026-07-12)

Q1. Нумерация vs фейки

  • Адреса без абракадабры, код проще, аудит прозрачнее
  • Документ нечитаем (Лицо_0042 заключил договор с Компания_0003)
  • Вывод: для аудита/хранения — отлично, для показа людям — фейки лучше

Q2. Глобальный счётчик на весь пакет

Одна сущность в разных документах → один номер. TwoPassObfuscator хранит counters.

Q3. Сохранять формат?

Рекомендация: Тип_NNNN — проще всего, аудит максимально прозрачен.

Q4. mapping.csv — главный документ аудита

Да, это улучшение. mapping.csv — секретный ключ деобфускации.

Q5. Номера vs UUID

Номера (Лицо_0042) — лучше для читаемости и аудита.


План изменений

Удалить

  • drhider/generators/ — все 12 файлов
  • drhider/checksum.py — больше не нужен (ИНН без контрольных сумм)
  • drhider/random_utils.py — больше не нужен

Изменить

  • scanner.py: добавить TYPE_PREFIXES + _next_token(), убрать импорты генераторов
  • obfuscator.py: TwoPassObfuscator хранит counters dict
  • config.py: убрать словари имён/городов (RU_SURNAMES, ...)

Новая логика замены

TYPE_PREFIXES = {
    "person_name": "Лицо", "company": "Компания", "phone": "Телефон",
    "email": "Email", "address": "Адрес", "inn": "ИНН", ...
}
_FALLBACK = "Данные"

def _next_token(entity_type, counters):
    prefix = TYPE_PREFIXES.get(entity_type, _FALLBACK)
    counters[prefix] = counters.get(prefix, 0) + 1
    return f"{prefix}_{counters[prefix]:04d}"