Блок — это минимальная единица, из которой строится сценарий смартапа. Блок задает действие, которое смартап совершит в процессе диалога с пользователем. Например:
- вывод текста и изображений на экран;
- перевод в режим ожидания действия пользователя, например, ввода фразы;
- выполнение фоновых действий, например, HTTP-запросов.
Описание каждого из блоков Graph вы найдете в соответствующем подразделе.
Как работают блоки
Блоки добавляются на экран сценария.
При запуске смартапа ассистент последовательно, сверху вниз выполняет все блоки, заданные на экране.
Пример экрана с тремя блоками:
При работе с представленным экраном ассистент будет действовать в следующей последовательности:
- Выведет сообщение «Привет!» из первого блока Текст.
- Выведет сообщение «Я могу чем-то помочь?» из второго блока Текст.
- Выполнит блок Интенты: будет ждать реакции пользователя и, в зависимости от ответа, выполнит следующее необходимое действие.
Связи блоков
Некоторые блоки обладают точкой выхода, которая позволяет соединять их с другими экранами. При достижении такого блока (и выполнении соответствующих условий), ассистент переходит к связанному экрану и выполняет заданные на нем блоки.
В приведенном примере, после того как ассистент скажет «Привет!» и «Я могу чем-то помочь?», смартап будет ждать реакции пользователя. Если пользователь скажет «да», то ответ пользователя попадет в интент Согласие, и ассистент перейдет к связанному экрану.
Добавление блоков
Блоки можно добавлять как на новые, так и на уже существующие экраны.
Добавление блока на новый экран
Чтобы добавить блок на новый экран сценария:
Нажмите кнопку Добавить экран.
Откроется список всех блоков.
Выберите блок из списка и заполните его параметры.
Сохраните блок.
Будет создан новый экран, с заданным блоком.
Добавление блока на существующий экран
Чтобы добавить блок на существующий экран:
- Наведите курсор на экран, куда требуется добавить блок.
- Нажмите кнопку Добавить блок.
- Выберите блок из списка и заполните его параметры.
- Сохраните блок.
При добавлении блоков на существующий экран некоторые блоки могут быть недоступны. Это связано с тем, что экран содержит блоки, несовместимые с тем, который вы пытаетесь добавить.
Например, на экран с блоком HTTP-запрос нельзя добавить блоки Ввод текста, Ввод числа, Номер телефона, Интенты и другие. Это связано с тем, что блок HTTP-запрос предполагает дальнейшие действия, после которых эти блоки станут недоступны.
Параметры блока
Блоки обладают параметрами, которые определяют логику смартапа.
Например:
- В блоке Текст можно указать текст, который будет писать или произносить ассистент и дополнительные реплики, которые будут выбираться случайным образом, а также добавить опции для голосового ассистента, например, разметку синтеза речи.
- В блоке HTTP-запрос можно указать адрес, к которому будет обращаться смартап, выражение и переменную, в которую будет записан результат, данные, которые будут передаваться, формат передаваемых данных и другие параметры.
Изменение названия блока
По умолчанию название каждого нового блока соответствует его типу, например, Текст или Интенты.
Вы можете изменить название, чтобы лучше ориентироваться в сценарии смартапа.
Для этого:
- Откройте блок.
- Нажмите на название блока.
- Укажите новое название.
Переменные
Во время работы смартапа может понадобиться получить от пользователя или сторонней системы какие-нибудь данные. Смартап может использовать такие данные, чтобы, например, принять решение о следующих шагах в сценарии или передать эту информацию в сторонний сервис.
Некоторые блоки, например, Ввод числа или Ввод текста, создают переменные с определенным именем, куда сохраняют полученные в этом блоке данные. Так, блок Ввод числа сохранит в переменную $number
число, которое ввел пользователь.
Эта переменная будет доступна на всех следующих экранах сценария в рамках текущей сессии пользователя. Как правило, при настройке блока вы указываете название переменной, а затем можете обратиться к ней на следующих шагах, поставив перед именем переменной знак $
.
Управление блоками
Блоки можно копировать и вырезать, чтобы добавить их на уже существующие экраны. Связи блоков не копируются при этом.
Чтобы копировать или вырезать блок:
Откройте меню в правой части блока.
Выберите пункт Скопировать или Вырезать. Если вы вырезали блок и хотите отменить действие, нажмите CTRL+Z.
Чтобы добавить блок или экран на существующий экран, нажмите кнопку Добавить блок или Добавить экран. Блок, который вы скопировали, будет первым в списке.
Блок нельзя вставить на экран, если он содержит несовместимые блоки.