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

Теги интентов SmartApp DSL

Обновлено 20 февраля 2024

intent:

Для создания интентов:

  1. Перейдите в свой проект Code в личном кабинете Studio.
  2. Выберите в боковом меню Редактор. Откройте раскрывающийся список.
  3. Выберите Интенты.

intent: — после тега записывается путь к интенту.

Локальный тег intent: активен только в контексте диалога, переход по тегу возможен из ближайшего родительского, из любого дочернего или из соседнего стейтов. Глобальный тег intent!: позволяет осуществить переход диалога в данный стейт из любого другого стейта.

Область срабатывания локального тега

Локальные декларативные теги срабатывают в этих случаях:

  • При переходе между стейтами, которые находятся на одном уровне и внутри одного родительского стейта. Примеры: Из стейта Розоцветные в стейт Цитрусовые и обратно. Из стейта Яблоко в стейт Груша и обратно
  • При переходе из родительского стейта в дочерний, но не более чем на один уровень вложенности. Примеры: Из стейта Фрукты в стейт Розоцветные. Из стейта Розоцветные в стейт Яблоко
  • При переходе из дочернего стейта в родительский на любое количество уровней. Примеры: Из стейта Яблоко в стейт Розоцветные. Из стейта Яблоко в стейт Фрукты

Локальные декларативные теги НЕ срабатывают в этих случаях:

  • При переходе из дочернего в чужой родительский стейт. Примеры: Из стейта Груша в стейт цитрусовые. Из стейта Лимон в стейт Розоцветные
  • При переходе из родительского стейта в чужой дочерний. Примеры: Из стейта Розоцветные в стейт Апельсин. Из стейта Цитрусовые в стейт Груша
  • При переходе из родительского стейта в дочерний на 2 и более уровней. Примеры: Из стейта Фрукты в стейт Яблоко. Из стейта Фрукты в стейт Апельсин
state: Фрукты
intent: /Фрукты
a: Выберите тип фрукта

state: Розоцветные
intent: /Розоцветные
a: Выберите фрукт

state: Яблоко
intent: /Яблоко
a: Это Яблоко, оно красное

state: Груша
intent: /Груша
a: Это Груша, она зеленая

state: Цитрусовые
intent: /Цитрусовые
a: Выберите фрукт

state: Апельсин
intent: /Апельсин
a: Это Апельсин, он оранжевый

state: Лимон
intent: /Лимон
a: Это Лимон, он желтый

При этом теги срабатывают в порядке зависимости от расстояния между текущим и целевым стейтами: наибольший приоритет имеют вложенные стейты (дочерние), затем стейты на том же уровне (соседние), затем родительские.

Тип значения

  • string — путь к интенту.

Параметры

  • fromState (string array). Определяет стейт, из которого возможен переход по данному интенту. Помогает адресовать вопрос из определенного контекста в нужный стейт без использования глобальных интентов и покинуть модальный контекст по определенному запросу.
  • toState (string). Определяет стейт, в который перейдет смартап по данному интенту. Помогает адресовать вопрос из определенного стейта в нужный контекст без использования глобальных интентов и покинуть модальный контекст по определенному запросу. При использовании параметра, интент, заданный в теге, будет срабатывать только в контексте текущего стейта. При переходе выполняются все реакции заданного стейта (аналогично тегу go!:).
  • onlyThisState (boolean). Используется совместно с параметром fromState. Если onlyThisState=true, переход по интенту с этим параметром возможен только из стейта, указанного в параметре fromState, но не из вложенных стейтов. Если параметр onlyThisState не указан? переход также можно выполнить из стейтов, вложенных в стейт, заданный в fromState.

Вложенные данные

  • multiline data

Синтаксис

При записи пути к интенту разделительным знаком является /:

  • /hi — путь составляется из символа / и названия интента.
  • /hi/politely — вложенный интент. Уровень вложенности интентов не ограничен.

Примеры значений

theme: /

state: Hello
intent: /hi
a: Здравствуйте.

state: Goodbye
intent: /bye
a: До свидания.

state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}

state: Time
intent: /Который час || fromState=/КакДела, onlyThisState = true

intent!:

intent!: — после тега записывается путь к интенту.

Глобальный тег intent!: позволяет осуществить переход диалога в данный стейт из любого другого стейта. Локальный тег intent: активен только в контексте диалога, переход тегу возможен из ближайшего родительского, из любого дочернего или из соседнего стейтов.

Тип значения

  • string — путь к интенту.

Параметры

  • fromState (string array)
  • toState (string)
  • onlyThisState (boolean)

Вложенные данные

  • multiline data

Синтаксис

При записи пути к интенту разделительным знаком является /:

  • /hi — путь составляется из символа / и названия интента.
  • /hi/politely — вложенный интент. Уровень вложенности интентов не ограничен.

Примеры значений

theme: /

state: Hello
intent!: /hi
a: Здравствуйте.

state: Goodbye
intent!: /bye
a: До свидания.

state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.