Классические блоки для полноценного диалога чатбота

Классические блоки для полноценного диалога чатбота
Автор:
Автор материала
Дмитрий
Время чтения:
Время чтения
19 мин.
Обновлено:
Обновлено, дата
21/01

Если вы привыкли пользоваться чатботами, теперь пришло время взглянуть на диалог с точки зрения самого чатбота. Если нет - познакомимся с ними. Как устроены диалоги? Из каких элементов состоят сценарии? Что бот может делать из коробки, а что требует самостоятельного изучения? На эти и другие вопросы я постараюсь дать ответ.

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

Здесь и далее для нашего удобства, мы будем находиться «на стороне» чатбота, а потому рассматривать действия от его имени.

Отправка текста

Основное, что делает чатбот при общении, — отправляет текстовые сообщения пользователю. Например, чатбот может поприветствовать пользователя, предложить варианты ответа или объяснить дальнейшие действия.

Бот отправляет это сообщение
Бот отправляет это сообщение

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

Отправка изображения и видео

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

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

Соответственно, обучающий чатбот может отправить видеоурок, бот для ресторанов — изображение блюда из меню, бот для нетворкинга - фотографию собеседника и так далее. А во втором случае создавать впечатление приятного разговора, отправляя фото собеседника с приветливой улыбкой, пожатием плеч, приободряющим похлопыванием во время тестирования. Даже домовой бот может создавать такое впечатления, когда отправляет графику открывающегося шлагбаума в ответ на заявку. Вспомните, получали ли вы такие сообщения, как например, «Вот как выглядит наш новый продукт!» — с изображением товара или коротким видеообзором?

Ожидание ответа от пользователя

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

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

[Чатбот] Привет, Дмитрий! 👋 Сначала предлагаю размяться и приготовил для этого одну мысль, над которой стоит поразмышлять. Ты готов? Соответственно, кнопки (о них позже) для ответа: 🟢 Ура, начинаем! 🔴 Давай попозже, ладно?

[Пользователь] 🔴 Давай попозже, ладно?

[Чатбот] Дай мне знать, когда будешь готов... Ну или я сам напомню через полчаса-час.

Через некоторое время

[Чатбот] В жизни мы часто действуем так, как привыкли, по шаблонам - это позволяет нашему мозгу освободить свои ресурсы на другие важные задачи. Однако креативный подход помогает лучше решать их, чем тысячи самых идеальных шаблонов, но не подготовленных для этого конкретного случая. Вы согласны? Соответственно, кнопки (о них позже) для ответа: 🟢 Конечно! 🔴 Пффф...

[Чатбот] <Далее текст про креативность>

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

[Чатбот] Привет, Дмитрий! 👋

[Чатбот] <Далее текст про креативность>

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

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

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

Работа с данными

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

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

Переменные помогают сохранять эти данные и контекст диалога. Например, обращаться по имени, что мы уже видели. А еще чатбот запоминает, выбрал ли пользователь определённый товар, и предлагает дополнительные опции. Это делает общение последовательным и логичным. В случае с тестированием в них можно хранить результаты тестов и показывать прогресс пользователя. 

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

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

Кнопки

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

Например, кнопки могут использоваться для выбора категорий в интернет-магазине, записи на приём или ответа на вопрос, заданный ботом. Это упрощает процесс и повышает удовлетворённость пользователя. В примере ниже по нажатию на соответствующую кнопку бот запускает диалог с добавлением к заказу того или напитка (посмотрите на стрелки, часть диалога мы скрыли для удобства).

Переход между диалогами по нажатию кнопок
Переход между диалогами по нажатию кнопок

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

Во-первых, если вы делаете бота самостоятельно на php, python или другом языке, то вам требуется поставить ожидание ответа для бота. Для компьютера отправляемые кнопки это всего лишь часть передаваемого сообщения пользователю, а ожидание ответа - это часть логики общения, не связанная с конкретным сообщением.

Как создать чат-бота самому?

Как создать чат-бота самому?

Создавайте схему общения в чате просто, без программирования. От вас нужен только контент!

Во-вторых, некоторые системы редактирования чатботов предполагают более сложные взаимодействия. Например, когда вы отправляете 2-3-4 сообщения с кнопками, а ожидание нажатия должно идти только после последнего. В этом случае вам необходимо ставить ожидания ответа именно после тех кнопок, после которых оно необходимо в соответствии с логикой. 

Это частая ошибка начинающих создателей ботов - они считают, что добавление кнопки автоматически остановит отправку множества сообщений и заставит бота ждать выбора пользователя. А на практике получается, что бот отправляет еще еще сообщения с кнопками без остановки. Поэтому повторяем еще раз - внимательно читайте информацию от редактора.

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

Скажете, что такое поведение выглядит странно? В подтверждение приведу пример одного нашего клиента. Его чатбот для управления офисом изначально был довольно обширным и решал множество задач от базы знаний до заказа пропусков поэтому его меню было также большим. Отметим, что принципиальная позиция клиента - пользователь должен на 1 экране видеть все, что может делать с помощью бота. Поэтому вместо многоуровнего меню с большим количеством переходов его меню выглядело, как набор из 3 сообщений с группировкой по каждой теме и соответствующими кнопками. Они отправлялись все сразу и только потом бот ждал нажатия кнопки пользователя.

Взаимодействие с внешними системами

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

Например, чатбот-помощник для студентов может подгружать данные о следующих парах (где и какая) по запросу студента, выводить его баллы и записывать на внеучебные активности. Для этого бот после запроса пользователя отправляет данные на сервер ВУЗа в определенном формате и создает текст на основе его ответа. А чатбот авиакомпании может предоставить информацию о рейсе: «Ваш рейс номер 123 вылетает в 18:30. Нужна помощь с регистрацией?» Затем соответственно, обмениваясь данными, собрать информацию от пользователя и зарегистрировать его на рейс, не выходя из чата.

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

Чатбот после получения заказа отправляет запрос в систему управления заказами
Чатбот после получения заказа отправляет запрос в систему управления заказами

В общем виде интеграция с сервисами по API предполагает, что бот отправляет определенные данные в установленном формате на определенный url и получает ответ. Если более просто, то

API (англ. application programming interface — программный интерфейс приложения) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.

Он предполагает взаимодействия вида: «Ко мне можно обращаться так и так, я обязуюсь делать то и это». Соответственно, сервисы прописывают, какие данные на какие url адреса надо отправлять, чтобы получить определенные данные или совершить определенные действия. Получить все эти данные вы можете у непосредственного сервиса или сайта - а более подробно мы рассмотрим этот функционал в следующих уроках.

Условия для сценариев

Как я писал в уроке по схемам, условия — это ключевой элемент сценариев, позволяющий адаптировать ответы под действия пользователя. Например, если пользователь впервые обращается к боту, сценарий будет отличаться от ситуации, когда он уже взаимодействовал с системой ранее. Так и отличия (если начинать от точки, где он сейчас) будут легко видны, если пользователь нажал кнопку «показать товары» и «статус заказа».

Так, если пользователь выбирает «показать товары», чатбот продолжает отправляет ему сообщения про товары, спрашивает о том, что ему необходимо - в общем, занимается продажами. А по статусу заказа он получает информацию от соответствующей базы и отправляет данные о сроках доставки, цене и телефоне для связи пользователю. Только делает он только, если пользователь уже вводил данные, в противном случае он сначала просит ввести данные заказа для поиска. Соответственно, вы настраиваете и переходы на экраны / цепочки.

Представление контента чатбота в виде схемы
Представление контента чатбота в виде схемы

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

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

Практическое задание

В уроке «Основы проектирования сценариев для чатбота» вы делали практическое задание, в результате которого у вас должен был получиться набор диалогов (разбитых по экранам). Вот он:

Сохранить

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

Прошлый вариант:

[Чатбот] Текст или картинка, которую он отправляет

{кнопка 1 (ведет к экрану, если ведет) и кнопка 2 (ведет к экрану, если ведет)}

[Пользователь] Текст-ответ пользователя для примера

Что делает бот, если это не отправка и получение текста

Новый вариант (в виде блоков):

[Отправка текста] Текст, который он отправляет

[Кнопки] кнопка 1 (ведет к экрану, если ведет), кнопка 2 (ведет к экрану, если ведет)

[Ожидание ответа] Запоминаем ли мы его?

[Работа с API] Что делает бот, если это не отправка и получение текста

[Калькулятор]  переменная_повторов + 3

(Я в пример добавил [Калькулятор]... Пока некоторые блоки мы не рассмотрели, но они будут важны для вашего бота. Поэтому забегая вперед, могу предложить описать их действие с пометками [тестирование, упражнение, калькулятор и др.] или же пропустить, если можете обойтись без них.)

Запишите результат ниже

Сохранить

В следующем уроке мы начнем подробное рассмотрение каждого блока: какие возможности открывают, как использовать, как правильно настраивать. Как будете готовы, переходите к следующему уроку.

Автор: Дмитрий
  1. Главная

Вам также понравится

Научитесь создавать ботов из программирования

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

НАУЧИТЬСЯ БЕСПЛАТНО

Сделано на платформе ПРАВОЛОГИЯ