Создание чат-бота для бронирования билетов в кино

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

По завершении у вас будет чат-бот, как показано на YouTube здесь:

Или вы можете просто скачать этот шаблон чат-бота здесь: https://www.bridgeriver.ca/signup. После загрузки вам необходимо обновить код в этом шаблоне, добавив свои собственные ключи API, чтобы он работал.

Зачем нам нужен чат-бот

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

Почему Botpress?

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

Построение разговорного потока

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

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

(1) start: начало рабочего процесса.

(2) введение

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

(3) get_city

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

После карты город нам нужно будет вычислить геолокацию на основе названия города через API, поэтому нам нужна карта выполнить код, которая называется получить геолокацию на основе города. Детали API находятся здесь: https://api-ninjas.com/api/geocoding, и каждый пользователь может зарегистрироваться, чтобы получить API-ключ, связанный с его/ее учетной записью. Код на карте выполнения приведен ниже. Ответ возвращает два элемента, поскольку два города связаны с Ванкувером, а Ванкувер, Канада является первым, поэтому мы хотим сохранить широту и долготу из response.data[0].latitude и response.data[ 0].долгота соответственно

// Make the API request to get geolocation for the given city
const city = workflow.city
const country = 'Canada'
const url = `https://api.api-ninjas.com/v1/geocoding?city=${city}&country=${country}`
const response = await axios.get(url, {
  headers: {
    // replace below API key with yours
    'X-Api-Key': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 
  }
})
console.log(response.data)
console.log(response.data[0])
console.log(response.data[1])

workflow.geo_lat = response.data[0].latitude
workflow.geo_long = response.data[0].longitude

console.log(workflow.geo_lat)
console.log(workflow.geo_long)

(4) get_cinema, get_movie, get_showtime

Эти три узла имеют очень схожую логику. Прежде всего, вам нужен API для получения всей информации о кино, фильмах и сеансах в зависимости от города. Например, вы можете зарегистрироваться, чтобы получить ключ API здесь: https://www.internationalshowtimes.com/signup.html, и соответствующие документы API находятся здесь: http://api.internationalshowtimes.com/documentation/v5/

После наличия ключа API логика каждого узла состоит из 6 событий. 1) получение информации о кинотеатре/фильме/время показа; 2) распечатать эту информацию, предоставить пользователю варианты с индексом на выбор; 3) попросить пользователя выбрать, какой из них он хочет выбрать, и запомнить это значение в переменных рабочего процесса; 4) используйте выражение для определения необходимости повторного ввода значения пользователем, например, если пользователь вводит неправильное число (не в текущем диапазоне индексов), тогда пользователю необходимо сделать выбор еще раз; 5) на основе выбранного индекса получить соответствующую информацию, например. название фильма/кинотеатра и соответствующий ему идентификатор в API; 6) условие перехода к следующему узлу.

Точный код для каждого узла можно узнать из шаблона.

(7) get_ticket_count

эти узлы просто спрашивают пользователя, сколько билетов он хочет

(8) конец:конец рабочего процесса.

Заключение

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

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

Другие полезные ресурсы для чат-ботов: Voiceflow, Dialogflow, Rasa.