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

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)

  1. Убрать хардкод НУБЕС из scan_regex
  2. scan_llm_ner — передавать mapping.keys() как "Already captured"
  3. Новый промпт:
    • Фиксированный список типов
    • Блок NOT PII (русский)
    • Двухфазная инструкция (STEP 1: Исполнитель, STEP 2: остальное)