# Запрос к Соннету — нумерация vs фейки для downstream LLM (2026-07-12) ## Контекст Я делаю сервис **DrHider** — обфускация документов. Находит ПДн → заменяет. После обфускации документы идут на дальнейшую LLM-обработку — **сверка спецификаций** (другой сервис contracts, извлекает типы/номера/даты/контрагентов через LLM). Сейчас генерация фейков: `Иванов И.И.` → `Петров А.С.`, `ООО «Ромашка»` → `ООО «Спектр»`. **Проблема:** для неизвестных типов (адреса, нестандартные ID) — character-class замена даёт абракадабру: `ул. Стекольная` → `иг. 8ц Лжчюсвхшбр`. Downstream LLM не может это обработать. ## Варианты замены ### А. Чистая нумерация `Иванов И.И.` → `Лицо_0042`, `ООО «Ромашка»` → `Компания_0003`, `ул. Ленина` → `Адрес_0015` Плюс: никакой абракадабры. Минус: LLM теряет контекст («Лицо_0042 заключил договор» — не понимает семантику). ### Б. Фейки (сейчас) `Иванов И.И.` → `Петров А.С.`, `ООО «Ромашка»` → `ООО «Спектр»` Плюс: LLM понимает роли. Минус: сложно (11 генераторов), ложное ощущение реальности, для неизвестных типов — абракадабра. ### В. Гибрид: шаблон + номер `Иванов И.И.` → `Иванов_5677`, `ООО «Ромашка»` → `ООО_Технология_0034`, `ул. Стекольная, д.7` → `ул_Ленина_0015`, `+7 (495) 789-41-35` → `+7_495_000_0042`, `info@nubes.ru` → `email_0007@fake` Плюс: LLM видит что это человек/компания/адрес, номер гарантирует уникальность и обфускацию. Минус: всё равно нужны шаблоны для каждого типа. ## Вопросы 1. Какой вариант лучше для downstream LLM-обработки (извлечение контрагентов, дат, номеров)? 2. Вариант В — достаточно ли LLM поймёт что `Иванов_5677` это персональные данные? 3. Для неизвестных типов — `[Данные_NNNN]` как fallback, ок? 4. Глобальная нумерация (сквозная через все документы пакета) vs локальная (в рамках одного файла)? 5. Стоит ли сохранять частичную структуру (например телефон `+7_495_000_0042` сохраняет формат номера)? ## Downstream задача (для контекста) LLM в сервисе contracts получает текст документа и должна извлечь: - Контрагент («с кем договор») - Номер и дату договора - Список услуг с ценами (таблица) Промпт для contracts LLM (фрагмент): ``` Извлеки из текста: тип документа, номер, дату, контрагента. Верни JSON: {"type":"договор","number":"...","date":"...","counterparty":"..."} ```