События распознавания интентов
Виды обрабатываемых событий
onIntentRecognized
Данный обработчик вызывается, когда происходит успешное распознавание интента. Можно подписаться только на события с определенным ключом интента (intentKey) или вообще все. При обработке события доступен объект с результатами распознавания, строкой ввода пользователя и ключом интента. С помощью обработчика этого события можно, например, дополнительно проанализировать строку ввода пользователя, попробовать найти в ней нужную информацию (название магазина, имя пользователя, регион и т. п.) или заранее заполнить соответствующие переменные бота.
TypeScript | |
---|---|
intentKey
— ключ интента, после успешного распознавания которого срабатывает обработчик события (см. IntentKeyType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается при распознавании любого интента (см. OptionalParameter).callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. IntentRecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
Пример
В этом примере при срабатывании интента о запросе времени работы магазина происходит попытка извлечения названия магазина из исходной строки ввода пользователя. При этом из нее отбрасываются слова, которые могут часто встречаться в вопросе, а по оставшимся словам производится нечеткий поиск по заранее известному списку названий магазинов. Если подходящее название найдено с достаточной точностью (достаточной долей уверенности), оно сразу записывается в соответствующую переменную, и название можно не спрашивать.
onIntentUnrecognized
Данный обработчик вызывается, когда происходит неуспешное распознавание интента. Можно подписаться только на события с определенной причиной неудачи (reasonKey) или вообще все. При обработке события доступен объект с результатами попытки распознавания, строкой ввода пользователя и причиной неудачи. С помощью обработчика этого события можно, например, обратиться к LLM/GPT и сгенерировать с помощью нее ответ для пользователя.
TypeScript | |
---|---|
reasonKey
— причина неудачного распознавания, после которого срабатывает обработчик события (см. IntentUnrecognizedReasonKeyType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается при любой причине неудачи (см. OptionalParameter). Возможные значения:no_utterance
- пустой ввод пользователя;no_intents
- пустой список интентов;low_score
- низкий score интента;common_unknown
- ввод пользователя определен как неизвестный;special_unknown
- ввод пользователя определен как соответствующий специальному неизвестному интенту.
callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. IntentUnrecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
Пример
В это примере мы подписываемся на событие нераспознанного интента и передаем этот ввод в Yandex GPT. На основании ответа от Yandex GPT мы формируем ответное сообщение для пользователя.