Совместимость J‑Graph с JAICP DSL
Таким основным понятиям J‑Graph, как шаги, темы и блоки, соответствуют конструкции JAICP DSL — языка, на котором пишутся сценарии ботов в JAICP.
Благодаря совместимости J‑Graph с JAICP DSL разные члены команд разработки диалоговых решений могут эффективно взаимодействовать друг с другом:
- Дизайнеры разговорных интерфейсов могут проектировать прототип сценария в графическом редакторе, а затем передавать его в разработку.
- Разработчики, приступив к работе над проектом, начинают не с нуля — значительную часть кода уже сгенерировал за них J‑Graph.
Шаги
Шаги в JAICP DSL соответствуют тегу state
. Группы шагов соответствуют вложенным стейтам.
Например, фрагмент сценария ниже, открытый в J‑Graph, соответствует следующей структуре кода:
![Группа шагов](/assets/images/group-inside-view-c216e26d977c15eb438a24224fa669d8.png)
theme: /
state: Симптомы
state: Есть
# ...
state: Нет
# ...
state: Ответ
# ...
Темы
Темы в J‑Graph соответствуют тегу theme
.
Корневая тема соответствует теме /
.
Если вы создадите новую тему в J‑Graph, в директорию src/themes
будет добавлен .sc
-файл с названием темы.
Тема будет объявлена в этом файле.
Файл будет автоматически подключен в главный файл сценария с помощью require
.
При удалении темы в J‑Graph:
- Тема и ее стейты бу дут удалены из всех файлов проекта.
- Если файл содержит только эту тему, то файл будет удален.
Блоки
Всем блокам в J‑Graph соответствуют теги JAICP DSL, а их настройкам — параметры тегов. Перейдите к документации по нужному тегу, чтобы подробнее узнать, как устроен изнутри тот или иной блок.
Фразы клиента и события
J‑Graph | JAICP DSL |
---|---|
Блок Фраза клиента (интент) | Тег intent |
Блок Событие | Тег event |
Блок Паттерн | Тег q |
Поле Перейти в шаг (у событий и паттернов) Поле Бот должен перейти… (у интентов) | Параметр toState |
Флаг Игнорировать переход из вложенных шагов | Параметр onlyThisState |
Способы активации
J‑Graph | JAICP DSL |
---|---|
Блок Фраза клиента (интент) | Тег intent или intent! |
Блок Событие | Тег event или event! |
Блок Паттерн | Тег q или q! |
Флаг Глобальный способ активации | Если включен, используется глобальный тег |
Поле Ожидать активацию из шага | Параметр fromState |
Флаг Игнорировать активацию из вложенных шагов | Параметр onlyThisState |
Реакции
Блок J‑Graph | Тег JAICP DSL |
---|---|
Текст | a |
Изображение | image |
Аудио | audio |
Условие | if elseif else |
Случайный ответ | random |
Группа кнопок | buttons inlineButtons (если действие по нажатию кнопки — Открыть ссылку) |
Переход | go (если переход отложенный) go! (если переход немедленный) |
Код | script |
Действия
Блок J‑Graph | Тег JAICP DSL |
---|---|
HTTP-запрос | HttpRequest |
Действия с Google Таблицами | GoogleSheets |
Завершение сессии | EndSession |
Запрос номера телефона | InputPhoneNumber |
Запрос подтверждения | Confirmation |
Запрос текста | InputText |
Запрос файла | InputFile |
Запрос числа | InputNumber |
Оплата через Telegram | TelegramPayment |
Отправка email | Email |
Отправка SMS | Sms |
Перевод звонка на оператора | TransferCallToOperator |
Перевод чата на оператора | TransferToOperator |