Настройка правил активации
Разработчик чатбота может сам определить механизм срабатывания стейтов при совместном использовании интентов, паттернов и групп примеров.
Функция-обработчик в качестве параметра получает контекст ctx, содержащий поле nluResults. Объект nluResults содержит следующие поля:
patterns— массив результатов от паттерн-матчера;examples— массив результатов от примеров;intents— массив результатов от интентов;selected— результат, выбранный по умолчанию.
Для изменения источника результата измените значение поля selected.
Пример
theme:/
init: //объявляем обработчик
bind("selectNLUResult", function(ctx) { //задаем обработчик для фазы `selectNLUResult`
log(ctx.nluResults); // выводим результаты в лог
if (ctx.nluResults.intents.length > 0){
ctx.nluResults.selected = ctx.nluResults.intents[0]; // используем результат от интентов
return;
}
if (ctx.nluResults.patterns.length > 0){
ctx.nluResults.selected = ctx.nluResults.patterns[0]; // если результата от интентов нет, используем паттерны
return;
}
if (ctx.nluResults.examples.length > 0){
ctx.nluResults.selected = ctx.nluResults.examples[0]; // если результата от интентов и паттернов нет, используем примеры
}
})- В секции
initобъявляем обработчик. Вы также можете задать обработчик в отдельном js-файле и подключить его в сценарии при помощиrequire. - Задаем обработчик для фазы
selectNLUResult. - Выведем результаты в лог:
log(ctx.nluResults). - Далее задаем порядок использования результатов:
- использовать результат от интентов:
ctx.nluResults.selected = ctx.nluResults.intents[0]; - использовать результат от паттерн-матчера:
ctx.nluResults.selected = ctx.nluResults.patterns[0]; - использовать результат от примеров:
ctx.nluResults.selected = ctx.nluResults.examples[0].
- использовать результат от интентов: