v4.0.0: дизайн Nubes, логотип, ZIP без mapping.csv внутри, CSV отдельно с датой-временем
Deploy drhider / validate (push) Waiting to run
Deploy drhider / validate (push) Waiting to run
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Запрос к Соннету — нумерация 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":"..."}
|
||||
```
|
||||
Reference in New Issue
Block a user