lct-hack/scenarios/checklists/common.yaml
Ivan Gerasimov 842a333d16 feat: уточнение адреса — место происшествия не равно адресу заявителя (lct-35)
Главный предмет проверки в билетах заказчика — адрес: названный заявителем
часто неверен, а настоящий добывается переспросом («ул. Станционная, 28»
оказывается Королёвом). Памятка АРМ-112 называет это обычным делом.

До этой правки оценка работала наоборот: ground_truth.address сравнивался
с единственным значением факта, поэтому курсант, правильно переспросивший
и записавший настоящий адрес, получал расхождение с эталоном, а записавший
ориентир — зачёт.

- Схема: у факта появились refined и refine_on, задаются только вместе.
- Слот-автомат различает уточнение и повтор: повтор раздражает звонящего,
  уточнение — нет, оператор спросил о другом и получил другое.
- Звонящий поправляется отдельной репликой, а не повторяет прежнее значение;
  офлайн-таблица получила секцию refine.
- Оценка: метрика address_refined (E1, опрос). Сделана отдельной, а не правкой
  метрики address: «записал не тот адрес» и «не спросил» — разные навыки
  и разные компетенции в радаре.
- Общие пункты чек-листа подключаются по требованию сценария: формулировки
  в checklists/common.yaml, сценарий объявляет пункт с тем же id без текста.
  Добавлять «уточните адрес» во все сценарии нельзя — неотработанный пункт
  штрафует за вопрос, которого сценарий не требовал.
- scenarios/fire-private-house-l3.yaml — первый сценарий из библиотеки
  заказчика (билет 3, вызов 1).

Риск механики проверен на живой модели: «Назовите адрес» и «Это точно Москва?»
эмбеддинги не путают, тест это фиксирует.

125 тестов зелёных (12 новых), make typecheck чистый.
2026-09-19 20:26:49 +03:00

36 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Реплики оператора, которые НЕ являются вопросом чек-листа.
#
# Зачем: матчинг по эмбеддингам сравнивает реплику с формулировками вопросов.
# Без этого списка «Оставайтесь на линии» оказывается ближе к пункту чек-листа,
# чем половина настоящих вопросов, — и звонящий выдаёт адрес на «успокойтесь».
# Реплика засчитывается вопросом, только если она ближе к пункту, чем к любой
# фразе отсюда.
#
# Дополнять, когда в разборе видно, что звонящий «понял вопрос», которого не было.
not_questions:
- "Служба 112, что случилось?"
- "Успокойтесь, пожалуйста"
- "Оставайтесь на линии"
- "Помощь уже едет"
- "Я вас понял"
- "Говорите громче, плохо слышно"
- "Выходите из квартиры"
- "Не кладите трубку"
- "Хорошо, записываю"
# Пункты, которые не принадлежат ни одному классификатору. Сценарий подключает
# нужный, объявив пункт с тем же `id` и без текста, — формулировки подставятся
# отсюда. Насильно во все сценарии они не добавляются: неотработанный пункт
# штрафует курсанта отметкой E1 за вопрос, которого сценарий не требовал.
checklist:
- id: q_address_check
question: "Уточните: происшествие по этому адресу, вы сейчас там?"
examples:
- "Это точно Москва?"
- "Вы сами находитесь по этому адресу?"
- "Происшествие там же, где вы?"
- "Какой город?"
- "Это в черте города?"
- "Уточните адрес происшествия"
- "Вы смотрите на это или вам рассказали?"
- "Адрес происшествия и ваш адрес совпадают?"