From 8c59c4b7e00c1cc33fa9273391834d2bbfb35a98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 13 Jul 2026 12:35:16 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=20?= =?UTF-8?q?Sonnet=20=E2=80=94=20=C2=AB=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=C2=BB=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BD=D0=B0=20=C2=AB=D0=BA=D0=BE=D0=B4=D1=8B=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=8B=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6-07-13-sonnet-query-obfuscation-tokens.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/History/2026-07-13-sonnet-query-obfuscation-tokens.md b/History/2026-07-13-sonnet-query-obfuscation-tokens.md index de3f2c3..6ee380d 100644 --- a/History/2026-07-13-sonnet-query-obfuscation-tokens.md +++ b/History/2026-07-13-sonnet-query-obfuscation-tokens.md @@ -4,11 +4,11 @@ --- -**Задача:** Найти причину расхождения между ожидаемыми токенами и реальными заменами. +**Задача:** Найти причину расхождения между ожидаемыми кодами замен и реальными заменами. ## Ожидаемое поведение -`_next_token()` в `drhider/scanner.py` генерирует токены формата: +`_next_token()` в `drhider/scanner.py` генерирует коды замен формата: - `Технология_0001`, `Прогресс_0002` (для компаний) - `+7_000_000_0001` (для телефонов) - `email_0001` (для email) @@ -19,15 +19,15 @@ ``` тип_данных,оригинал,замена -phone,+7 (495) 789-41-35,+7 (495) 906-87-80 ← НЕ токен, реальный номер -email,info@nubes.ru,ypiorej@company.local ← НЕ токен, реальный email -company,ЗАО ****XXX****001****,АО «Прогресс» ← НЕ токен, реальное название -company,ЗАО XXX001,ООО «Альянс» ← НЕ токен, реальное название -inn_ul,ИНН 9706005293,ИНН 1846691249 ← НЕ токен, реальный ИНН -kpp,КПП 772401001,КПП 350443068 ← НЕ токен, реальный КПП -ks,Кор/сч 30101810400000000225,Кор/сч 30101201490272090211 ← НЕ токен -ogrn,ОГРН 1207700098759,ОГРН 1048672318430 ← НЕ токен -company,ООО "НУБЕС",ООО «Спектр» ← НЕ токен +phone,+7 (495) 789-41-35,+7 (495) 906-87-80 ← НЕ код замены, реальный номер +email,info@nubes.ru,ypiorej@company.local ← НЕ код замены, реальный email +company,ЗАО ****XXX****001****,АО «Прогресс» ← НЕ код замены, реальное название +company,ЗАО XXX001,ООО «Альянс» ← НЕ код замены, реальное название +inn_ul,ИНН 9706005293,ИНН 1846691249 ← НЕ код замены, реальный ИНН +kpp,КПП 772401001,КПП 350443068 ← НЕ код замены, реальный КПП +ks,Кор/сч 30101810400000000225,Кор/сч 30101201490272090211 ← НЕ код замены +ogrn,ОГРН 1207700098759,ОГРН 1048672318430 ← НЕ код замены +company,ООО "НУБЕС",ООО «Спектр» ← НЕ код замены text,Исполнителем Заказчику Сторонами,Кузнецов О.В. text,"Обязанности Заказчика\nСвоевременно",Степанов А.В. text,"Обязанности Исполнителя\nОказывать",Петров П.Е. @@ -36,7 +36,7 @@ text,"Ответственность Исполнителя\nИсполните company,ПАО Сбербанк,АО «Формат» ``` -**Ни одного токена формата `XXX_0000` в колонке «замена».** +**Ни одного кода замены формата `XXX_0000` в колонке «замена».** ## Реальный результат — `TMP/договор-XXX001-03700_obfuscated.md` (первые строки) @@ -59,7 +59,7 @@ company,ПАО Сбербанк,АО «Формат» **Прочитать для контекста:** 5. `TMP/mapping.csv` — полный результат 6. `TMP/договор-XXX001-03700_obfuscated.md` — обфусцированный файл -7. `TMP/примеры_договоров_для_ИИ/договор-XXX001-03700.docx` — оригинал (для сверки адресов/имён) +7. `TMP/примеры_договоров_для_ИИ/договор-XXX001-03700.docx` — оригинал (для сверки) **Не лезть:** `builder.py`, `extractor.py`, `replacer.py`, `session.py`, `templates/`, docs/, History/. @@ -84,7 +84,7 @@ def _next_token(entity_type, counters): mapping[original] = _next_token(entity_type, counters) ``` -Всегда вызывает `_next_token`. Результат должен быть токеном. +Всегда вызывает `_next_token`. Результат должен быть кодом замены. ### 3. `scanner.py` — `scan_llm_ner()` (стр. 109-179) @@ -92,7 +92,7 @@ mapping[original] = _next_token(entity_type, counters) mapping[val] = _next_token(ent_type, counters) ``` -Тоже вызывает `_next_token`. Результат должен быть токеном. +Тоже вызывает `_next_token`. Результат должен быть кодом замены. ### 4. `obfuscator.py` — порядок вызова (стр. 86-92)