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

Совместимость 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 соответствуют тегу theme. Корневая тема соответствует теме /.

Если вы создадите новую тему в J‑Graph, в директорию src/themes будет добавлен .sc-файл с названием темы. Тема будет объявлена в этом файле. Файл будет автоматически подключен в главный файл сценария с помощью require.

При удалении темы в J‑Graph:

  • Тема и ее стейты будут удалены из всех файлов проекта.
  • Если файл содержит только эту тему, то файл будет удален.

Блоки

Всем блокам в J‑Graph соответствуют теги JAICP DSL, а их настройкам — параметры тегов. Перейдите к документации по нужному тегу, чтобы подробнее узнать, как устроен изнутри тот или иной блок.

Фразы клиента и события

J‑GraphJAICP DSL
Блок Фраза клиента (интент)Тег intent
Блок СобытиеТег event
Блок ПаттернТег q
Поле Перейти в шаг (у событий и паттернов)
Поле Бот должен перейти… (у интентов)
Параметр toState
Флаг Игнорировать переход из вложенных шаговПараметр onlyThisState

Способы активации

J‑GraphJAICP 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
Оплата через TelegramTelegramPayment
Отправка emailEmail
Отправка SMSSms
Перевод звонка на оператораTransferCallToOperator
Перевод чата на оператораTransferToOperator