2.1 KiB
2.1 KiB
Ответ Соннета 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)
- Убрать хардкод
НУБЕСизscan_regex scan_llm_ner— передаватьmapping.keys()как "Already captured"- Новый промпт:
- Фиксированный список типов
- Блок NOT PII (русский)
- Двухфазная инструкция (STEP 1: Исполнитель, STEP 2: остальное)