Редактор сценариев

Описание функционала для создания своих сценариев для голосового и чат-бота

Перемещение в рабочем пространстве и интерфейс редактора

Перемещение и масштабирование

Для перемещения в пространстве редактора есть 2 способа:

1. Поместить курсор в пустое место рабочего пространства (белый фон с точками), зажать левую кнопку мыши и потянуть мышь в сторону, противоположную той, в которую вы хотите продвинуться.

перемещение.gif

2. Поместить курсор в пустое место рабочего пространства, отдалиться при помощи колесика мыши (проскроллить вниз), затем навести курсор на место в рабочем пространстве, в которое хотите переместиться, и приблизить, проскроллив колесиком мыши вверх.

перемещение2.gif

Для масштабирования рабочего пространства помимо скролла колесиком мыши есть еще панель масштабирования справа сверху. Цифра, которая там отображена, показывает текущий масштаб элементов в рабочем пространстве.

image.png

Для открытия панели масштабирования, нужно кликнуть на scale  (У вас может быть показана другая цифра масштаба).

Вы увидите 4 элемента для работы с масштабом:

  1. Масштабирует рабочее пространство до 100% к центру экрана
  2. Увеличивает масштаб рабочего пространства
  3. Уменьшает масштаб рабочего пространство
  4. Перемещает к началу координат рабочего пространства (месту в рабочем пространстве, где создается автоматический начальный блок) в масштабе 100%. Можно размещать в этой области начальные блоки ваших сценариев для быстрой навигации к ним.

image.png

Интерфейс редактора сценариев

Для наглядности элементы интерфейса помечены цифрами на изображении ниже.

1 — Кнопка возвращения из редактора сценария к странице списка сценариев
2 — Заголовок сценария, отображенного в редакторе. Здесь можно отредактировать заголовок  edit или открыть другой сценарий в редакторе, выбрав его из выпадающего списка errow-down
3 — Открывает поверх боковой панели (7) панель версий со списком сохраненных версий, а также изменений в них. 
4 — Открывает модальное окно со списком ошибок в сценарии, если такие есть. Здесь отображаются ошибки, которые делают работу сценария невозможной: отсутствие начального/завершающего блока, отсутствие исходящих связей.
5 — Сохраняет текущую версию сценария, после чего новая сохраненная версия появляется на панели версий (3)
6 — Делает опубликованной текущую версию сценария. Публикация возможна только для сохраненных версии, поэтому при наличии несохраненных изменений произойдет автоматическое сохранение текущей версии. Только опубликованная версия сценария используется в диалогах.
7 — Аватар авторизованного пользователя, этот функционал пока в разработке.
8 — Показывает текущий масштаб элементов в рабочем пространстве радактора (10), а при клике открывает панель масштабирования, функционал которой описан выше на странице.
9 — боковая панель редактора сценариев с табами «Свойства» (9.1), «Переменные» (9.2), «Проверка» (9.3). По умолчанию открыт таб «Свойства» 
9.1 — Таб «Свойства», в котором отображается контент выделенного блока и инструменты для управления им. Для выделения блока нужно кликнуть по нему, на изображении ниже ни один блок не выделен. Подробнее про настройку блоков на странице «Типы блоков в конструкторе диалогов»
9.2 — Таб «Переменные». В нем осуществляется работа с переменными: просмотр списка переменных в сценарии, добавление, редактирование. См. инструкцию по работе с переменными
9.3 — Таб «Проверка», в котором можно протестировать созданный сценарий в интерфейсе редактора. Подробнее на странице «Тестирование сценария в конструкторе»
10 — Рабочее пространство редактора сценариев. В нем отображаются составляющие сценария: блоки (10.1) и связи (10.2)
10.1 — Карточка блока в рабочем пространстве. Что такое блоки и как с ними работать вы узнаете по ходу создания сценария и на странице «Типы блоков в конструкторе диалогов»
10.2 — Связи. Тонкие серые линии, соединяющие блоки. Они также незаменимы для работы сценария и формируют пути, по которым может пройти диалог. Как построить связь, показано в пошаговом руководстве по запуску голосового ассистента, а именно на странице «Шаг 1. Создание сценария»

image.png

Типы блоков в конструкторе диалогов

В платформе "Диалог" есть следующие типы блоков, необходимые для создания сценария любой сложности. Рассмотрим их в назывном порядке.

Название блока

Описание

Вид

Начать сценарий

Инициирует начало диалога и принимает на вход переданные параметры (не обязательно). Например, ФИО абонента

image.png

Завершить сценарий

Переводит звонок на оператора ИЛИ завершает звонок

image.png

Завершить и переадресовать


image.png

Поставить на удержание

Позволяет поставить звонок на удержание и подождать ответа абонента (например, если абонент выполняет перезагрузку роутера)

image.png

Диалог с LLM

Блок, в котором нейросеть ведёт диалог с абонентом на основе заданной роли, задачи и контекста до тех пор, пока не выполнится команда для выхода. Может автоматически заполнять переменные по результатам диалога.

image.png

Заполнить переменные с LLM

Используется для того, чтобы LLM (большая языковая модель) автоматически заполнила указанные переменные на основании контекста всего диалога по описанию этих переменных. Этот блок может быть полезен, если нужно извлечь и структурировать данные, которые абонент упомянул в свободной форме.

image.png

Озвучить текст

Блок, которые озвучивает переданный в него текст

image.png

Воспроизвести аудио

Блок, который воспроизводит загруженное в него аудио

image.png

Сравнить переменные

Сравнивает значение двух переменных с помощью логических операторов (=, >, <)

И если условие пройдено перенаправляет диалог по нужной ветке

image.png

Обработать ответ

Обрабатывает ответы пользователей и в зависимости от ответа перенаправляет диалог по нужной ветке

image.png

Отправить запрос в базу

Отправляет запрос в базу данных и принимает вернувшиеся данные

image.png

Отправить HTTP-запрос

Отправляет HTTP-запрос и принимает вернувшиеся данные 

image.png

Изменить переменные

Присваивает переменной любое значение, в том числе значение другой переменной

image.png

Пройти по случайной ветке

Случайным образом определяет по какой ветке пойдет сценарий (вариант 1 ИЛИ вариант 2)

image.png

Пустой блок

Служит для удобства создания сценария, трансформируется в любой блок

 image.png

Перенаправить и вернуться


image.png

Список со всеми блоками можно увидеть, нажав ПКМ (правой кнопкой мыши) по свободному участку поля в конструкторе.

Описание работы блоков

Блок «Начать сценарий»

Блок «Начать сценарий»

При создании нового сценария данный блок создается по умолчанию.

 

Действие

Скрин

1

Чтобы создать новый блок:

Нажмите ПКМ по рабочему пространству редактора и в появившемся списке выберите блок «Начало сценария»

 

image.png

 

2

В боковой панели справа откроются свойства блока

В поле «Тип начального блока» оставляем вариант «Начало сценария» — по умолчанию

image.png

3

Если нам нужно передать какие-то данные на вход сценария (н-р, фио абонента, время записи и тп), то нажимаем на кнопку «Добавить параметр»


Если мы создаем исходящий сценарий, то на вход он должен принимать как минимум номер телефона абонента

image.png

4

Добавим параметр и назовем его «phone». Потом при создании обзвона и при загрузке csv-файла, он должен обязательно иметь столбец «phone»


 

image.png

 

5

Выберем переменную сценария, в которую мы запишем переданный из csv-файла параметр «phone»:

  1. Для этого давайте создадим одноименную переменную «phone». Как это сделать

  2. Выберем в выпадающем списке новую созданную переменную «phone»

image.png

6

Сохраним изменения

image.png

 

Блок «Диалог с LLM»

Блок «Диалог с LLM» используется для ведения полноценного диалога нейросети с абонентом внутри сценария. Он позволяет модели выполнять заданную задачу в рамках определённой роли и контекста, а также при выполнении указанной команды переходить к  следующему блоку.

LLM - это большая лингвистическая модель, какие используют, например, ChatGPT, DeepSeek, Copilot, Gemini.


Особенности блока


Строение промта

Промт или инструкция для LLM собирается из 4 элементов:

  1. Роль — кто или что должна играть модель.

  2. Задача — что должна сделать LLM.

  3. Контекст — входная информация для выполнения задачи.

  4. Команда для выхода — условие выхода из блока.

Рекомендуется писать команду для выхода в формате: «Выйди из блока, когда...», а также дублировать это условие в графе "Задача" в том же формате.


Заполнение переменных

LLM может заполнять переменные, указанные во вкладке Команда для выхода.

Например, можно заполнить город абонента в переменную, если пользователь его назвал в течении всего диалога или тему обращения, если та была выявлена.


Рекомендации

Блок «Заполнить переменные с LLM»

Блок «Заполнить переменные с LLM» используется для того, чтобы LLM (большая языковая модель) автоматически заполнила указанные переменные на основании контекста диалога и описания этих переменных. Этот блок может быть полезен, если нужно извлечь и структурировать данные, которые абонент упомянул в свободной форме.


Особенности блока

⚠️ Важно: на текущий момент, из-за ограничений работы LLM, даже если переменная отмечена как обязательная, это не гарантирует её заполнение перед выходом из блока. Модель постарается её заполнить, но может не успеть или не найти нужную информацию в контексте.


Как работает заполнение

LLM использует накопленный контекст всего диалога и описание переменных, чтобы попытаться:


Настройка переменных

В блоке можно:


Команда для LLM

Промт, который используется для заполнения переменных, можно изменить через кнопку «Изменить команду для LLM». Но мы не рекомендуем делать этого. Сейчас в блоке оптимальный промт для качественного выполнения задачи блока.

Рекомендации

Блок особенно полезен после блока «Диалог с LLM», когда модель уже взаимодействовала с абонентом и получила достаточно контекста.

Блок «Озвучить текст»

В блоке «Озвучить текст» мы пишем текст, который голосовой ассистент озвучит во время разговора.

Начнем редактирование сценария с добавления блока «Озвучить текст». Для этого:

Действие

Скрин

1

Нажмите ПКМ по полотну и в появившемся списке выберите блок «Озвучить текст»

 

image.png

 

2

Введите текст для озвучивания голосовым ассистентом в поле «Текст для озвучивания»

 

Необязательно: чтобы прослушать текст, можно нажать на кнопку «Синтезировать», а затем на значок плеера в появившейся ниже аудиозаписи

image.png

3

Нажмите на кнопку «Сохранить изменения»

image.png

Дополнительные свойства блока «Озвучить текст»

Описание

Элементы

1. Добавление цели на блок для отображения его в аналитике


2. Добавление в текст переменных. Например, при добавлении переменной «name»: «Добрый день, {{name}}», бот обратится к пользователю следующим образом: “Добрый день, Иван”


3. Чтобы прослушать, как голосовой ассистент озвучит введенный текст, можно нажать на кнопку «Синтезировать», а затем на значок плеера в появившейся ниже аудиозаписи


4. Добавление альтернативного варианта текста. При прохождении диалога блок будет случайным образом озвучивать один из вариантов текста


5. При добавлении галочки объединяет содержимое этого блока выдачи ответа со следующим блоком выдачи ответа (озвучить текст или воспроизвести аудио).


Объединенное содержимое будет озвучено в том блоке выдачи ответа, где эта опция не включена. В нем же обработается ответ абонента.

 

Это удобно, когда нужно воспроизвести содержимое нескольких блоков выдачи ответа без пауз и показать в расшифровке единой фразой ассистента.


6. В этом блоке не будет обрабатываться ответ абонента. Содержимое будет озвучено и сценарий продолжит работу без ожидания ответа.

Это удобно, например, когда нужно сообщить абоненту о необходимости подождать из-за обработки больших объемов данных или когда ответ абонента неважен.


7. Позволяет автоматически остановить воспроизведение содержимого блока и обработать ответ абонента, если он произнес что-то в момент воспроизведения. Например:

Р: Вас записать на мастер-класс, где вы …

А: Да

Р: Хорошо, ждем вас

 

image.png

 

Блок «Воспроизвести аудио»

В блоке «Воспроизвести аудио» мы загружаем аудиосообщение для воспроизведения во время разговора.

Интерфейс свойств блока «Воспроизвести аудио» такой же, как у блока «Озвучить текст»

Блок «Обработать ответ»

Блок «Обработать ответ» обрабатывает ответы абонента на вопросы и в зависимости от ответа ведет диалог по нужной ветке сценарии. Например, если ответ «да», то по одной ветке, если «нет», то по другой.

Действие

Скрин

1

Нажмите ПКМ по полотну и в появившемся списке выберите блок «Обработать ответ»

image.png

2

В боковом меню нажмите на кнопку «Добавить пользовательский интент» 

image.png

3

В открывшемся модальном окне вы можете создать новый интент для добавления в блок или использовать существующий общедоступный или шаблонный интент. Подробнее о добавлении интента на странице «Добавление интента в блок»

image.png


4

Вы можете отредактировать добавленный в блок интент, кликнув на иконку карандаша справа от названия добавленного интента.

 

Для созданных интентов с нуля (не на основе другого интента), это сделать необходимо, потому что именно ключевые фразы влияют на попадание/не попадание ответа под интент

image.png

image.png

4.1

В открывшемся окне редактирования можно добавить/удалить/отредактировать ключевые и исключающие фразы, протестировать интент, изменить название

Для общедоступных и шаблонных интентов доступна еще отвязка от общедоступного/шаблонного.

 

Подробнее про редактирование интента на странице 

image.png

4.2

Также вы можете изменить порядок добавленных интентов стрелками слева от названия интентов. Ответ абонента отнесется к тому интенту, с ключевыми словами которого произойдет совпадения первым, поэтому очередность важна.

 

Для удаления интента кликните на иконку крестика справа от названия интента.

image.png

5

После добавления нужных интентов, можете протестировать блок, чтобы проверить на тестовых фразах, как он будет отрабатывать с текущими настройками

 

Инструкции по тестированию интентов и блоков

 

image.png

 

6

Для удобства редактирования блока можете перейти на отдельную страницу «Настройка интентов в блоке», кликнув на кнопку «Открыть страницу настройки блока». Инструкция по работе с этой страницей здесь.

 

image.png

 

7

Не забудьте сохранить изменения при редактировании блока в редакторе сценариев.

image.png

8

После сохранения настроек добавленные интенты отобразятся в карточке блока в рабочем пространстве. Для каждого интента будут добавлены исходящие порты, из которых необходимо вывести связи к другим блокам.

image.png


Дополнительные свойства блока «Обработать ответ»

Описание

Элементы

1. Добавление цели на блок для отображения его в аналитике

 

2. Добавление системного интента: «Молчание по умолчанию» проведет по определенной ветке в случае молчания абонента.


3-4. Определение количества переспросов и снятие ограничения на количество переспросов. То есть определение, сколько раз робот будет переспрашивать абонента, если его вариант не попадает под добавленные интенты (варианты ответов).

Например, есть выставлено 2 повтора:

Р: Вы придете?

Ч: Что-что?

Р: Вы придете?

Ч: Хммм

Р: Вы придете?

Ч: бебебе

Р: Переходит к следующему блоку


5. Превышен лимит — это когда робот повторил вопрос заданное количество раз, но не получил нужного ответа. Далее он отправит диалог из варианта «Превышен лимит»

image.png

image.png

Блок «Сравнить переменные»

Блок «Сравнить переменные» позволяет сравнивать одну переменную с другой с помощью логических операторов: =, >,<, …

В зависимости от выполнения условия сценарий идет по одной или другой ветке.

Действие

Скрин

1

Нажмите ПКМ по полотну и в появившемся списке выберите блок «Сравнить переменные»

image.png

2

В боковом меню в поле Переменная 1 выберите первую переменную, которую хотите сравнить 


Как создать переменную, читайте в разделе «Работа с переменными»

 

image.png

 

3

Затем выберите логический оператор и вторую переменную для сравнения

image.png

4

Кликните на кнопку «Сохранить изменения». Вы получите блок следующего вида


Если переменная 1 будет, например, больше переменной 2, то условие выполнится и сценарий пойдет из точки «Условие 1». Если не выполнится, то диалог выйдет из точки «Не пройдено»

image.png


Дополнительные свойства блока «Сравнить переменные»

Описание

Элементы

1. Добавление цели на блок для отображения его в аналитике


2. При нажатии на кнопку «Добавить условие» появляется раздел, где можно добавить еще одно сравнение переменных


Если условий несколько, то они проверяются последовательно (сверху вниз). То есть, сначала проверяется условие 1 и, если оно выполнится, то условие 2 даже не будет проверятся

 

image.png

 

Блок «Изменить переменную»

Блок «Изменить переменную»

Используется для изменения значений переменных в сценарии

Действие

Скрин

1

Нажмите ПКМ по полотну и в появившемся списке выберите блок «Изменить переменную»

image.png

2

В боковом меню выберите переменную, которой хотите присвоить новое значение и в поле «Значение переменной» введите новое значение 


Как создать переменную, читайте в разделе «Работа с переменными»

image.png

Системные переменные

{{serv__request_text}} – текст, который озвучил абонент

Блок «Завершить сценарий»

Блок «Завершить сценарий»

Завершающий блок обязателен для работы сценария. Для завершения сценария используйте блок «Завершить сценарий» или «Завершить и переадресовать»

Действие

Скрин

1

Чтобы создать новый блок:

Нажмите ПКМ по полотну и в появившемся списке выберите блок «Завершить сценарий»

image.png

2

В боковой панели справа откроются свойства блока.

У нас есть четыре типа завершения сценария:

1 – Положить трубку. Звонок просто завершится со стороны голосового ассистента

2 – Перевести на оператора. Звонок будет переведен на оператора

3 – Перенаправление. Диалог будет перенаправлен в другой сценарий платформы "Диалог"
4 – Вернуть диалог обратно. Возвращает сценарий обратно в блок «Перенаправить и вернуться»

image.png

3

Выбираем нужный тип и нажимаем на кнопку «Сохранить изменения», если изменения были внесены

image.png


Работа с переменными

Переменные играют в создании сценария важную роль и используются в следующих ситуациях:


Действие

Скрин

1

Чтобы создать/отредактировать/посмотреть переменные – перейдем в боковом меню на вкладку «Переменные»

 

image.png

 

2

Чтобы создать новую переменную, нажмем на кнопку «Добавить переменную»



image.png

3

1. Выберем тип переменной: число или текст

2. Введем название, например, «Сезон»

3. Необязательно: установим значение по умолчанию 

 

 

image.png

3.1

4. Необязательно: Введем описание переменной для llm. Именно на это описание будет ориентироваться llm при подстановке значения переменной при помощи блока "Заполнить переменные с ллм"

Например: время года, в которое обратился абонент.

или: город абонента
или: тема обращения абонента.

Чем точнее вы опишете желаемый результат, тем точнее окажется значение переменной при заполнении.

Например, для определения темы обращения подойдет такое описание:

Основной запрос абонента. Определи основную тему обращения по запросу абонента, охарактеризуй ёмко. Например:
"Проблемы с интернетом", "Узнать расписание".

image.png

3.2

5. Необязательно: добавьте допустимые значения, из которых llm в блоке "Заполнить переменные с ллм" должна будет выбрать одно наиболее подходящее по контексту диалога.

6. Нажмите на кнопку "Сохранить"

image.png

4

Теперь в списке с переменными появится наша новая переменная «fio».

 

Для редактирования переменной нажмите на поле с названием переменной в списке

image.png

5

При редактировании вы можете изменить поля, настраиваемые при добавлении переменной.

После внесения изменений нажмите на кнопку «Сохранить». Для сброса изменений и возвращения к списку переменных, нажмите на кнопку «Назад к списку переменных»

                      image.png

6

Для использования переменных в блоках "Озвучить текст", "Отправить сообщение" и "Отправить в телеграм", начните вводить название переменной в фигурных скобках {{ и система сама предложит вам подставить одну из созданных в сценарии переменную

image.png

Тестирование сценария в редакторе

Когда у вас есть готовый сценарий, вы можете его протестировать, не выходя из редактора сценариев. Это будет тестовый звонок прямо в интерфейсе сценария, в котором вы сможете поучаствовать как обычный абонент, используя микрофон, подключенный к устройству, на котором вы используете платформу.

В готовом сценарии должно быть выполнено 3 условия:

При попытке тестирования с невыполненными условиями, интерфейс выдаст Ошибку сценария с описанием ошибки.

image.png

Для тестирования выполните следующие действия:

Действие

Скрин

1

В правом верхнем углу боковой панели переходим на таб «Проверка»

image.png

2

Выбираем стартовый блок

3

Альтернативно (может быть этот шаг, может не быть)

Вбиваем тестовые параметры для звонка. Например, это может быть номер телефона, фио пациента и т.п.

4

Нажимаем на кнопку «Звонок»

5

Разрешаем использование микрофона

6

Разговариваем с роботом и наблюдаем за прохождением диалога с помощью логов в правой боковой панели

Иструкция по созданию своего первого сценария