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

theme: /
    state: Симптомы
        state: Есть
            # ...
        state: Нет
            # ...
        state: Ответ
            # ...
Блоки
Всем блокам в 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 | 
| Условие | ifelseifelse | 
| Случайный ответ | random | 
| Группа кнопок | buttonsinlineButtons(если действие по нажатию кнопки — Открыть ссылку) | 
| Переход | 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 |