Совместимость J‑Graph с JAICP DSL
Таким основным понятиям J‑Graph, как шаги, темы и блоки, соответствуют конструкции JAICP DSL — языка, на котором пишутся сценарии ботов в JAICP.
Благодаря совместимости J‑Graph с JAICP DSL разные члены команд разработки диалоговых решений могут эффективно взаимодействовать друг с другом:
- Дизайнеры разговорных интерфейсов могут проектировать прототип сценария в графическом редакторе, а затем передавать его в разработку.
- Разработчики, приступив к работе над проектом, начинают не с нуля — значительную часть кода уже сгенерировал за них J‑Graph.
Шаги
Шаги в JAICP DSL соответствуют тегу state. Группы шагов соответствуют вложенным стейтам.
Например, фрагмент сценария ниже, открытый в J‑Graph, соответствует следующей структуре кода:
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 |