This site is no longer updated.Go to new Conversational Cloud docs

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


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

Функция-обработчик в качестве параметра получает контекст 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];  // если результата от интентов и паттернов нет, используем примеры
        }

        })
  1. В секции init объявляем обработчик. Вы также можете задать обработчик в отдельном js-файле и подключить его в сценарии при помощи require.
  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].