intent
Описание
intent — после тега записывается путь к интенту. Интент — ключевая единица NLU-сервиса, объединяющая в себе набор фраз, намерение клиента и другую метаинформацию.
Локальный тег intent активен только в контексте диалога, переход в стейт возможен из ближайшего родительского или из дочерних стейтов. Глобальный тег intent! позволяет осуществить переход диалога в данный стейт из любого другого стейта.
Тип значения
- string — путь к интенту.
Параметры
fromState(string) — определяет стейт, из которого возможен переход.toState(string) — определяет стейт, в который будет осуществлен переход.onlyThisState(boolean) — при флагеtrueпереход в стейт может быть совершен только из указанного в параметреfromStateсостояния, но не из его дочерних стейтов. По умолчаниюfalse.
Вложенные данные
- multiline data
Синтаксис
При записи пути к интенту разделительным знаком является /:
/hi— путь составляется из символа/и названия интента./hi/politely— вложенный интент. Уровень вложенности интентов не ограничен.
Примеры использования
- Простой пример использования интентов:
theme: /
state: Hello
intent: /hi
a: Здравствуйте.
state: Goodbye
intent: /bye
a: До свидания.
state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}- Пример использования флагов
fromState,onlyThisState:
theme: /
state: КакДела || modal = true
intent: /Как дела
a: А ты как?
state: Плохо
intent: /Плохо
a: Не грусти!
state: Хорошо
intent: /Хорошо
a: Ты из какого города?
state: Время
intent: /Который час || fromState=/КакДела, onlyThisState = true
a: Самое время подкрепиться!
В данном примере переход в стейт Время возможен только из стейта КакДела, так как мы его указали во флаге fromState. При этом переход из вложенных стейтов Хорошо или Плохо не произойдет.