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

48 lines
2.1 KiB
Markdown

# Ответ Соннета v2 — улучшение LLM-промпта (2026-07-12)
## Q1. Как научить LLM определять Исполнителя из контекста?
**Двухфазная инструкция в промпте:**
- STEP 1: определи кто «Исполнитель» — его данные НЕ трогать
- STEP 2: найди всё остальное ПДн
Убирает хардкод `НУБЕС` из кода. Работает на любом договоре.
## Q2. Точная классификация типов
Вместо `"Invent the type label yourself"`**фиксированный список:**
`person_name, company, phone, email, address, inn, kpp, ogrn, bik, passport, contract_number, bank_account, other_id`
Если сомневаешься — НЕ включай.
## Q3. Примеры что НЕ является ПДн
Обязательно добавить блок:
```
NOT PII:
- Юридические роли: Исполнитель, Заказчик, Стороны
- Термины договора: Услуги, Приложение, Договор, НДС
- Должности: Генеральный директор
- Сама компания-Исполнитель
```
## Q4. Передавать LLM уже найденное regex'ом
`scan_llm_ner` получает `mapping.keys()` → промпт: "Already captured (skip these): ..."
Исключает дублирование, экономит токены.
## Q5. Язык промпта
Гибрид: структурные инструкции на английском, NOT PII и роли — на русском.
---
## План реализации (scanner.py)
1. Убрать хардкод `НУБЕС` из `scan_regex`
2. `scan_llm_ner` — передавать `mapping.keys()` как "Already captured"
3. Новый промпт:
- Фиксированный список типов
- Блок NOT PII (русский)
- Двухфазная инструкция (STEP 1: Исполнитель, STEP 2: остальное)