Перейти к основному содержимому

Теги действий

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

Кроме обычных тегов реакций в JAICP DSL есть особые теги действий, которые позволяют вызвать из стейта отдельный сценарий или функцию. В этом подсценарии или функции бот может реализовать любое поведение: выполнять произвольное число реакций, переходить по стейтам самого подсценария. При этом в основном сценарии эта сложная логика представлена как один тег.

Теги действий полезно использовать, когда в сценарии есть сложные и часто повторяющиеся действия. Когда они реализованы через теги действий, их не нужно каждый раз копировать или писать заново. Достаточно указать только тег, а переменные значения передавать в него как параметры.

Типы тегов

В JAICP есть два вида тегов действий:

  • Встроенные теги, которые уже написаны за вас. Через них бот может, например, отправлять HTTP-запросы или переводить диалог на оператора.
  • Собственные теги, которые вы можете создать сами. С помощью них вы можете реализовать любую логику работы бота и переиспользовать ее в разных частях сценария.

Сами действия, которые описывают теги, также делятся на:

  • Сценарные действия, которые реализованы как переход в стейт отдельного подсценария.
  • JavaScript-действия, которые реализованы как вызов функции на JavaScript.

Использование в сценарии

Теги действий можно использовать, если вы разрабатываете сценарий как через редактор кода, так и через графический редактор J‑Graph.

Через редактор кода

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

state: ForgottenPassword
intent!: /Я забыл пароль
Confirmation:
prompt = Я могу сбросить ваш пароль и отправить новый на {{$client.email}}. Продолжить?
agreeState = /ForgottenPassword/ResetPassword
disagreeState = /EnterPassword
useButtons = true
agreeButton = Да, сбросить пароль
disagreeButton = Нет, попробовать еще раз
подсказка
В параметрах тегов действий можно использовать подстановки значений в скобках {{}}. Внутри скобок может находиться любое допустимое выражение на JavaScript.

Через графический редактор J‑Graph

Всем тегам действий в J‑Graph соответствуют блоки действий. Выберите в интерфейсе нужный блок, заполните параметры и сохраните блок.

Блок «Запрос подтверждения», которое соответствует тегу `Confirmation`