Общие события распознавания ввода (интенты и ответы на вопросы из БЗ)
Виды обрабатываемых событий
onUtteranceRecognized
Данный обработчик вызывается, когда происходит любое успешное распознавание ввода пользователя. Т.е. в том случае, если удалось распознать интент или найти ответ на вопрос в базах знаний. Можно подписаться только на события с определенным ключом источника (sourceKey) или вообще все. При обработке события доступен объект с результатами распознавания, строкой ввода пользователя и ключом источника распознавания (интенты или вопросы/ответы из баз знаний). С помощью обработчика этого события можно, например, дополнительно проанализировать строку ввода пользователя, попробовать найти в ней нужную информацию (название магазина, имя пользователя, регион и т. п.) или заранее заполнить соответствующие переменные бота.
TypeScript | |
---|---|
sourceKey
— ключ источника (интенты или вопросы/ответы из баз знаний) (см. UtteranceRecognizedSourceKeyType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается при распознавании из любого источника (см. OptionalParameter). Возможные значения:intents
- ввод пользователя распознан как интент;answers
- ввод пользователя распознан как вопрос к базе знаний.
callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. UtteranceRecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
onUtteranceUnrecognized
Данный обработчик вызывается, когда происходит неуспешное распознавание ввода пользователя. Т.е. в том случае, если не удалось распознать интент и найти ответ на вопрос в базах знаний. Можно подписаться только на события с определенной причиной неудачи (reasonKey) или вообще все. При обработке события доступен объект с результатами попытки распознавания, строкой ввода пользователя и причиной неудачи. С помощью обработчика этого события можно, например, обратиться к LLM/GPT и сгенерировать с помощью нее ответ для пользователя.
TypeScript | |
---|---|
reasonKey
— причина неудачного распознавания, после которого срабатывает обработчик события (см. UtteranceUnrecognizedReasonKeyType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается при любой причине неудачи (см. OptionalParameter). Возможные значения:no_utterance
- пустой ввод пользователя;not_recognized
- ввод пользователя не распознан ни как интент, ни как вопрос к базе знаний.
callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. UtteranceUnrecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
Пример
В это примере мы подписываемся на событие нераспознанного ввода и передаем это ввод в Yandex GPT. На основании ответа от Yandex GPT мы формируем ответное сообщение для пользователя.