Теги действий
Основу логики работы бота составляют теги реакций: они задают реакции, которые выполняет бот при попадании в стейт. Обычно это единичные и простые операции: например, одно текстовое сообщение или вывод одного набора кнопок.
Кроме обычных тегов реакций в 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 соответствуют блоки действий. Выберите в интерфейсе нужный блок, заполните параметры и сохраните блок.