Типы блоков в конструкторе диалогов
В платформе "Диалог" есть следующие типы блоков, необходимые для создания сценария любой сложности. Рассмотрим их в назывном порядке.
Название блока |
Описание |
Вид |
Начать сценарий |
Инициирует начало диалога и принимает на вход переданные параметры (не обязательно). Например, ФИО абонента |
|
Завершить сценарий |
Переводит звонок на оператора ИЛИ завершает звонок |
|
Завершить и переадресовать |
|
|
Поставить на удержание |
Позволяет поставить звонок на удержание и подождать ответа абонента (например, если абонент выполняет перезагрузку роутера) |
|
Диалог с LLM |
Блок, в котором нейросеть ведёт диалог с абонентом на основе заданной роли, задачи и контекста до тех пор, пока не выполнится команда для выхода. Может автоматически заполнять переменные по результатам диалога. |
|
Заполнить переменные с LLM |
|
|
Озвучить текст |
Блок, которые озвучивает переданный в него текст |
|
Воспроизвести аудио |
Блок, который воспроизводит загруженное в него аудио |
|
Сравнить переменные |
Сравнивает значение двух переменных с помощью логических операторов (=, >, <) И если условие пройдено перенаправляет диалог по нужной ветке |
|
Обработать ответ |
Обрабатывает ответы пользователей и в зависимости от ответа перенаправляет диалог по нужной ветке |
|
Отправить запрос в базу |
Отправляет запрос в базу данных и принимает вернувшиеся данные |
|
Отправить HTTP-запрос |
Отправляет HTTP-запрос и принимает вернувшиеся данные |
|
Изменить переменные |
Присваивает переменной любое значение, в том числе значение другой переменной |
|
Пройти по случайной ветке |
Случайным образом определяет по какой ветке пойдет сценарий (вариант 1 ИЛИ вариант 2) |
|
Пустой блок |
Служит для удобства создания сценария, трансформируется в любой блок |
|
Перенаправить и вернуться |
|
Список со всеми блоками можно увидеть, нажав ПКМ (правой кнопкой мыши) по свободному участку поля в конструкторе.
Описание работы блоков
Блок «Начать сценарий»
Блок «Начать сценарий»
При создании нового сценария данный блок создается по умолчанию.
№ |
Блок «Диалог с LLM»
Блок «Диалог с LLM» используется для ведения полноценного диалога нейросети с абонентом внутри сценария. Он позволяет модели выполнять заданную задачу в рамках определённой роли и контекста, а также при выполнении указанной команды переходить к следующему блоку.
LLM - это большая лингвистическая модель, какие используют, например, ChatGPT, DeepSeek, Copilot, Gemini.
Особенности блока
-
Блок имеет один вход и до двух выходов:
-
Основной — задается через название команды для выхода.
-
Системный ("Перевод на оператора") — необязательный. Перевод на оператора происходит, когда абонент несколько раз просит перевести на оператора.
-
Строение промта
Промт или инструкция для LLM собирается из 4 элементов:
-
Роль — кто или что должна играть модель.
-
Задача — что должна сделать LLM.
-
Контекст — входная информация для выполнения задачи.
-
Команда для выхода — условие выхода из блока.
Рекомендуется писать команду для выхода в формате: «Выйди из блока, когда...», а также дублировать это условие в графе "Задача" в том же формате.
Заполнение переменных
LLM может заполнять переменные, указанные во вкладке Команда для выхода.
-
Заполнение происходит на основании:
-
контекста всего диалога;
-
описания переменной.
- указанных возможных значений в настройках переменных
-
-
Переменная может быть:
-
Обязательной — LLM должна её заполнить;
-
Необязательной — можно проигнорировать.
-
Например, можно заполнить город абонента в переменную, если пользователь его назвал в течении всего диалога или тему обращения, если та была выявлена.
Рекомендации
-
Роль, задачу, контекст и команду для выхода лучше задавать на английском языке.
-
Желательно дублировать в поле "Команда для выхода" и в промте в графе "Задача" условие, которое должно осуществиться, чтобы выйти из блока.
-
Редактировать промт удобно через модальные окна, доступные при клике на иконку редактирования рядом с каждым пунктом.
Блок «Заполнить переменные с LLM»
Блок «Заполнить переменные с LLM» используется для того, чтобы LLM (большая языковая модель) автоматически заполнила указанные переменные на основании контекста диалога и описания этих переменных. Этот блок может быть полезен, если нужно извлечь и структурировать данные, которые абонент упомянул в свободной форме.
Особенности блока
-
Переменные: пользователь вручную выбирает переменные, которые необходимо заполнить. Каждая переменная может быть:
-
Обязательной — рекомендуется заполнить, но не гарантируется (см. ниже);
-
Необязательной — может остаться пустой.
-
⚠️ Важно: на текущий момент, из-за ограничений работы LLM, даже если переменная отмечена как обязательная, это не гарантирует её заполнение перед выходом из блока. Модель постарается её заполнить, но может не успеть или не найти нужную информацию в контексте.
Как работает заполнение
LLM использует накопленный контекст всего диалога и описание переменных, чтобы попытаться:
-
определить значение переменной;
-
выбрать подходящее из допустимых значений (если они заданы);
-
внести значение в переменную перед переходом к следующему блоку.
Настройка переменных
В блоке можно:
-
выбрать переменную из списка созданных в сценарии;
-
задать флаг «Обязательная» — LLM постарается обязательно заполнить её;
-
при необходимости — задать или изменить описание переменной (например, «город проживания абонента»);
-
задать список допустимых значений (например, сезоны года или названия городов или темы обращений для дальнейшей обработки конкретных тем).
Команда для LLM
Промт, который используется для заполнения переменных, можно изменить через кнопку «Изменить команду для LLM». Но мы не рекомендуем делать этого. Сейчас в блоке оптимальный промт для качественного выполнения задачи блока.
Рекомендации
-
Добавляйте только те переменные, которые реально могут быть распознаны на текущем этапе диалога.
-
Старайтесь писать лаконичные, но точные описания переменных.
-
Если есть список допустимых значений, заполняйте его — это повысит точность распознавания.
Блок особенно полезен после блока «Диалог с LLM», когда модель уже взаимодействовала с абонентом и получила достаточно контекста.
Блок «Озвучить текст»
В блоке «Озвучить текст» мы пишем текст, который голосовой ассистент озвучит во время разговора.
Начнем редактирование сценария с добавления блока «Озвучить текст». Для этого:
Нажмите ПКМ по полотну и в появившемся списке выберите блок «Озвучить текст» |
Введите текст для озвучивания голосовым ассистентом в поле «Текст для озвучивания»
Необязательно: чтобы прослушать текст, можно нажать на кнопку «Синтезировать», а затем на значок плеера в появившейся ниже аудиозаписи |
Нажмите на кнопку «Сохранить изменения» |
Дополнительные свойства блока «Озвучить текст»
Элементы |
Блок «Воспроизвести аудио»
В блоке «Воспроизвести аудио» мы загружаем аудиосообщение для воспроизведения во время разговора.
Интерфейс свойств блока «Воспроизвести аудио» такой же, как у блока «Озвучить текст»
Блок «Обработать ответ»
Блок «Обработать ответ» обрабатывает ответы абонента на вопросы и в зависимости от ответа ведет диалог по нужной ветке сценарии. Например, если ответ «да», то по одной ветке, если «нет», то по другой.
№ |
Действие |
Скрин |
1 |
Нажмите ПКМ по полотну и в появившемся списке выберите блок «Обработать ответ» |
|
2 |
В боковом меню нажмите на кнопку «Добавить пользовательский интент» |
|
3 |
В открывшемся модальном окне вы можете создать новый интент для добавления в блок или использовать существующий общедоступный или шаблонный интент. Подробнее о добавлении интента на странице «Добавление интента в блок» |
|
4 |
Вы можете отредактировать добавленный в блок интент, кликнув на иконку карандаша справа от названия добавленного интента.
Для созданных интентов с нуля (не на основе другого интента), это сделать необходимо, потому что именно ключевые фразы влияют на попадание/не попадание ответа под интент |
|
4.1 |
В открывшемся окне редактирования можно добавить/удалить/отредактировать ключевые и исключающие фразы, протестировать интент, изменить название
|
|
4.2 |
Также вы можете изменить порядок добавленных интентов стрелками слева от названия интентов. Ответ абонента отнесется к тому интенту, с ключевыми словами которого произойдет совпадения первым, поэтому очередность важна.
Для удаления интента кликните на иконку крестика справа от названия интента. |
|
5 |
После добавления нужных интентов, можете протестировать блок, чтобы проверить на тестовых фразах, как он будет отрабатывать с текущими настройками
|
|
6 |
Для удобства редактирования блока можете перейти на отдельную страницу «Настройка интентов в блоке», кликнув на кнопку «Открыть страницу настройки блока». Инструкция по работе с этой страницей здесь. |
|
7 |
Не забудьте сохранить изменения при редактировании блока в редакторе сценариев. |
|
8 |
После сохранения настроек добавленные интенты отобразятся в карточке блока в рабочем пространстве. Для каждого интента будут добавлены исходящие порты, из которых необходимо вывести связи к другим блокам. |
Дополнительные свойства блока «Обработать ответ»
Описание |
Элементы |
1. Добавление цели на блок для отображения его в аналитике
2. Добавление системного интента: «Молчание по умолчанию» проведет по определенной ветке в случае молчания абонента. 3-4. Определение количества переспросов и снятие ограничения на количество переспросов. То есть определение, сколько раз робот будет переспрашивать абонента, если его вариант не попадает под добавленные интенты (варианты ответов). Например, есть выставлено 2 повтора: Р: Вы придете? Ч: Что-что? Р: Вы придете? Ч: Хммм Р: Вы придете? Ч: бебебе Р: Переходит к следующему блоку 5. Превышен лимит — это когда робот повторил вопрос заданное количество раз, но не получил нужного ответа. Далее он отправит диалог из варианта «Превышен лимит» |
Блок «Сравнить переменные»
Блок «Сравнить переменные» позволяет сравнивать одну переменную с другой с помощью логических операторов: =, >,<, …
В зависимости от выполнения условия сценарий идет по одной или другой ветке.
Нажмите ПКМ по полотну и в появившемся списке выберите блок «Сравнить переменные» |
В боковом меню в поле Переменная 1 выберите первую переменную, которую хотите сравнить Как создать переменную, читайте в разделе «Работа с переменными» |
Затем выберите логический оператор и вторую переменную для сравнения |
Кликните на кнопку «Сохранить изменения». Вы получите блок следующего вида Если переменная 1 будет, например, больше переменной 2, то условие выполнится и сценарий пойдет из точки «Условие 1». Если не выполнится, то диалог выйдет из точки «Не пройдено» |
Дополнительные свойства блока «Сравнить переменные»
Блок «Изменить переменную»
Блок «Изменить переменную»
Используется для изменения значений переменных в сценарии
Действие |
Нажмите ПКМ по полотну и в появившемся списке выберите блок «Изменить переменную» |
В боковом меню выберите переменную, которой хотите присвоить новое значение и в поле «Значение переменной» введите новое значение Как создать переменную, читайте в разделе «Работа с переменными» |
Системные переменные
{{serv__request_text}} – текст, который озвучил абонент
Блок «Завершить сценарий»
Блок «Завершить сценарий»
Завершающий блок обязателен для работы сценария. Для завершения сценария используйте блок «Завершить сценарий» или «Завершить и переадресовать»
№ |
Действие |
Скрин |
1 |
Чтобы создать новый блок: Нажмите ПКМ по полотну и в появившемся списке выберите блок «Завершить сценарий» |
|
2 |
В боковой панели справа откроются свойства блока. У нас есть четыре типа завершения сценария: 1 – Положить трубку. Звонок просто завершится со стороны голосового ассистента 2 – Перевести на оператора. Звонок будет переведен на оператора 3 – Перенаправление. Диалог будет перенаправлен в другой сценарий платформы "Диалог" |
|
3 |
Выбираем нужный тип и нажимаем на кнопку «Сохранить изменения», если изменения были внесены |