lct-hack/scenarios/checklists/fire.yaml
Ivan Gerasimov 7c97310938 lct-07 (без LLM): слот-автомат, персона, звонящий на заготовках, make repl
Звонящий не выдаёт данные сам: автомат держит раскрытые факты явно и
отдаёт звонящему только их. Тест прогоняет длинную серию реплик и
проверяет, что ни один нераскрытый факт не прозвучал.

Главная находка — матчинг по порогу близости не работает. На
multilingual-e5-small настоящие вопросы дают 0.79–0.95, а «Оставайтесь
на линии» — до 0.89: диапазоны перекрываются, и любой порог либо выдаёт
адрес на «успокойтесь», либо не слышит «где вы находитесь?».

Решение — сравнение с ближайшим соседом: у пункта чек-листа несколько
формулировок (examples), рядом общий список не-вопросов
(checklists/common.yaml), и реплика засчитывается пункту, только если она
ближе к нему, чем к любому не-вопросу. На отложенных фразах: 19 из 20
вопросов, 0 из 8 ложных срабатываний.

Реплика режется только по границам предложений, со знаком: «?» для e5 —
сильный признак вопроса, без него «Куда ехать» уходит к не-вопросам.

Подсказка берёт неотработанный пункт из автомата. В живой сессии автомат
начнёт слышать оператора, когда голосовой контур передаст ему stt.final.

Ждёт ключа LLM: условие approach у скрытых фактов, звонящий своими
словами, dialog/llm.py с кэшем.
2026-09-17 13:57:43 +03:00

28 lines
1.9 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.

# Общий чек-лист по классификатору 01 — МЧС.
# Наследуется сценариями через `extends`, дополняется локально.
# Методика: docs/product/METHODOLOGY.md#чек-листы-опроса
#
# `examples` — другие формулировки того же вопроса. Чем их больше и чем они
# разнообразнее, тем точнее звонящий «понимает» оператора. Писать так, как
# говорят живые операторы, а не как в инструкции.
id: fire
dds: "01"
checklist:
- id: q_address
question: "Назовите адрес: улица, дом, квартира, этаж?"
examples: ["Какой у вас адрес?", "Где вы находитесь?", "На каком этаже?", "Номер дома и квартиры?"]
- id: q_what_burns
question: "Что именно горит?"
examples: ["Что горит?", "Что именно загорелось?", "Откуда идёт огонь?"]
- id: q_people
question: "Есть ли люди в помещении?"
examples: ["Кто-то остался внутри?", "Все успели выйти?"]
- id: q_smoke
question: "Куда идёт дым, есть ли задымление подъезда?"
examples: ["Куда идёт дым?", "Есть ли задымление в подъезде?", "Сильный дым?"]
- id: q_gas
question: "Есть ли газ, можно ли перекрыть?"
examples: ["У вас газовая плита?", "Перекрыть газ сможете?"]
- id: q_caller
question: "Представьтесь и оставьте контактный телефон"
examples: ["Как вас зовут?", "Ваш номер телефона?"]