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 с кэшем.
This commit is contained in:
parent
4f5a8d1400
commit
7c97310938
22 changed files with 1073 additions and 26 deletions
19
scenarios/checklists/common.yaml
Normal file
19
scenarios/checklists/common.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Реплики оператора, которые НЕ являются вопросом чек-листа.
|
||||
#
|
||||
# Зачем: матчинг по эмбеддингам сравнивает реплику с формулировками вопросов.
|
||||
# Без этого списка «Оставайтесь на линии» оказывается ближе к пункту чек-листа,
|
||||
# чем половина настоящих вопросов, — и звонящий выдаёт адрес на «успокойтесь».
|
||||
# Реплика засчитывается вопросом, только если она ближе к пункту, чем к любой
|
||||
# фразе отсюда.
|
||||
#
|
||||
# Дополнять, когда в разборе видно, что звонящий «понял вопрос», которого не было.
|
||||
not_questions:
|
||||
- "Служба 112, что случилось?"
|
||||
- "Успокойтесь, пожалуйста"
|
||||
- "Оставайтесь на линии"
|
||||
- "Помощь уже едет"
|
||||
- "Я вас понял"
|
||||
- "Говорите громче, плохо слышно"
|
||||
- "Выходите из квартиры"
|
||||
- "Не кладите трубку"
|
||||
- "Хорошо, записываю"
|
||||
|
|
@ -1,12 +1,28 @@
|
|||
# Общий чек-лист по классификатору 01 — МЧС.
|
||||
# Наследуется сценариями через `extends`, дополняется локально.
|
||||
# Методика: docs/product/METHODOLOGY.md#чек-листы-опроса
|
||||
#
|
||||
# `examples` — другие формулировки того же вопроса. Чем их больше и чем они
|
||||
# разнообразнее, тем точнее звонящий «понимает» оператора. Писать так, как
|
||||
# говорят живые операторы, а не как в инструкции.
|
||||
id: fire
|
||||
dds: "01"
|
||||
checklist:
|
||||
- { id: q_address, question: "Назовите адрес: улица, дом, квартира, этаж?" }
|
||||
- { id: q_what_burns, question: "Что именно горит?" }
|
||||
- { id: q_people, question: "Есть ли люди в помещении?" }
|
||||
- { id: q_smoke, question: "Куда идёт дым, есть ли задымление подъезда?" }
|
||||
- { id: q_gas, question: "Есть ли газ, можно ли перекрыть?" }
|
||||
- { id: q_caller, question: "Представьтесь и оставьте контактный телефон" }
|
||||
- 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: ["Как вас зовут?", "Ваш номер телефона?"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue