ym88659208ym87991671
Настройка правил активации для смартапов | Документация для разработчиков

Настройка правил активации

Обновлено 15 декабря 2023

Разработчик смартапа может сам определить механизм срабатывания стейтов при совместном использовании интентов, паттернов и групп примеров.

Функция-обработчик в качестве параметра получает контекст ctx, содержащий поле nluResults. Объект nluResults содержит следующие поля:

  • patterns — массив результатов от паттерн-матчера;
  • examples — массив результатов от примеров;
  • intents — массив результатов от интентов;
  • externalIntents — значение интента полученного из протокола от ассистента;
  • 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]; // если результата от интентов и паттернов нет, используем примеры
}

if (ctx.nluResults.externalIntents.length > 0){
ctx.nluResults.selected = ctx.nluResults.externalIntents[0]; // используем результат от интентов из протокола
return;
}
})
  1. В секции init объявляем обработчик.
  2. Задаем обработчик для фазы selectNLUResult.
  3. Выведем результаты в лог: log(ctx.nluResults).
  4. Далее задаем порядок использования результатов:
    • использовать результат от интентов: ctx.nluResults.selected = ctx.nluResults.intents[0];
    • использовать результат от паттерн-матчера: ctx.nluResults.selected = ctx.nluResults.patterns[0];
    • использовать результат от примеров: ctx.nluResults.selected = ctx.nluResults.examples[0].
    • использовать результат от интента полученного из протокола: ctx.nluResults.selected = ctx.nluResults.externalIntents[0];.
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.