Найти тему
Chatterb0x

Создание простого игрового чат-бота за пару минут

Оглавление

Сегодня мы рассмотрим как работает редактор Chatterb0x(https://app.chatterb0x.ru) на примере создания простого игрового чат-бота. Наш бот будет играть роль Змея Горыныча и после коротких представлений спросит у потенциального богатыря(игрока) какую дорогу он выберет. В зависимости от выбора игрок либо выигрывает, либо проигрывает. Очень просто! Давайте приступим!

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

Обзор

Готовый игровой бот в редакторе
Готовый игровой бот в редакторе

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

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

Добавление блока в редакторе
Добавление блока в редакторе

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

Соединение блоков
Соединение блоков

Блоки действий бота

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

Блоки действий пользователя

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

Использование переменных

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

Результат полученный от игрока в результате ввода с клавиатуры будет сохранен в переменную под названием $NAME
Результат полученный от игрока в результате ввода с клавиатуры будет сохранен в переменную под названием $NAME

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

Мало сохранить данные, было бы круто их еще и использовать! Как насчет того, чтобы дальше обратиться к игроку по имени? Для этого достаточно в тексте написать знак доллара и название переменной. Например: "Ладно, $NAME, давай начнем игру! Налево пойдешь - точно проиграешь; на право пойдешь - коня потеряешь!"

Бот, который спрашивает имя, сохраняет его в переменную $NAME и использует ее при дальнейшем обращении к игроку
Бот, который спрашивает имя, сохраняет его в переменную $NAME и использует ее при дальнейшем обращении к игроку

Выбор из нескольких вариантов

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

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

По условиям игры, если пользователь пойдет налево - его ждет поражение. Если пойдет направо, то совершенно точно потеряет коня, но зато выиграет. То есть мы хотим дать возможность выбрать одну из опций: пойти налево, либо пойти направо. Для этого добавим блок "Опции", соединим его с последним блоком "Сообщение", нажмем на шестеренку в правом верхнем углу блока "Опции" и добавим 2 соответствующие опции.

Настройка блока "Опции"
Настройка блока "Опции"

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

Подведение итогов

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

Финал игры
Финал игры

Все что осталось сделать - не забыть нажать кнопку "Сохранить", а затем "Предпросмотр". Готовый результат, который получился у меня можно посмотреть по ссылке: https://app.chatterb0x.ru/bot/5d9e626a96ae1c0027488ec9

На этом все, желаю вам удачных ботов на https://chatterb0x.ru