События распознавания ответов на вопросы из БЗ
Виды обрабатываемых событий
onQuestionRecognized
Данный обработчик вызывается, когда происходит успешное нахождение ответа на вопрос из базы знаний. Можно подписаться только на события с определенным идентификатором стадии базы знаний и/или вопроса (kbStageId/answerId) или вообще все. При обработке события доступен объект с результатами распознавания, строкой ввода пользователя, идентификатором стадии базы знаний и вопроса. С помощью обработчика этого события можно, например, дополнительно проанализировать строку ввода пользователя, попробовать найти в ней нужную информацию (название магазина, имя пользователя, регион и т. п.) или заранее заполнить соответствующие переменные бота. Обработчик вызывается один раз для каждой включенной базы знаний в боте (на текущий момент в UI можно подключить только одну базу знаний, однако в будущем данная возможность может быть расширена на несколько баз знаний).
TypeScript | |
---|---|
kbStageId
— идентификатор стадии базы знаний (см. KbStageIdType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается для всех баз знаний (см. OptionalParameter).answerId
— идентификатор ответа (см. AnswerIdType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается для любого ответа (см. OptionalParameter).callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. QuestionRecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
onQuestionUnrecognized
Данный обработчик вызывается, когда происходит неуспешное нахождение ответа на вопрос из базы знаний. Можно подписаться только на события с определенным идентификатором стадии базы знаний и/или причиной неудачи (kbStageId/reasonKey) или вообще все. При обработке события доступен объект с результатами попытки распознавания, строкой ввода пользователя, идентификатором стадии базы знаний и причиной неудачи. С помощью обработчика этого события можно, например, обратиться к LLM/GPT и сгенерировать с помощью нее ответ для пользователя. Обработчик вызывается один раз для каждой включенной базы знаний в боте (на текущий момент в UI можно подключить только одну базу знаний, однако в будущем данная возможность может быть расширена на несколько баз знаний).
TypeScript | |
---|---|
kbStageId
— идентификатор стадии базы знаний (см. KbStageIdType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается для всех баз знаний (см. OptionalParameter).reasonKey
— причина неудачного распознавания, после которого срабатывает обработчик события (см. QuestionUnrecognizedReasonKeyType). При указанииnull
,undefined
,"*"
или пустой строки обработчик вызывается при любой причине неудачи (см. OptionalParameter). Возможные значения:no_utterance
- пустой ввод пользователя;kb_disabled
- база знаний отключена;no_answers
- база знанаий не содержит записей;low_score
- низкий score ответа из базы знаний.
callback
— функция, которая будет вызвана после успешного распознавания.botEvent
— объект события, который можно использовать в теле функции (см. QuestionUnrecognizedEvent).
В событии также доступны некоторые возможности управления выполнением сценариев бота: Управление выполнением. Например, можно проверить, находится ли пользователь в корневом сценарии: Текущие сценарии. Также можно отметить текущую активность как обработанную: activityProcessed.
Пример
В это примере мы подписываемся на событие нераспознанного ответа на вопрос из базы знаний и передаем этот вопрос в Yandex GPT. На основании ответа от Yandex GPT мы формируем ответное сообщение для пользователя.