Научная статья на тему 'Microsoft Bot Framework в разработке чат-ботов'

Microsoft Bot Framework в разработке чат-ботов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
335
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
CHAT BOT / MICROSOFT BOT FRAMEWORK / FRAMEWORK / CHANNEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Батунин Максим Евгеньевич, Куляшова Наталья Михайловна

В статье рассматривается роль Microsoft Bot Framework в разработке чат-ботов и его основное преимущество. Кратко описываются принципы работы чат-бота на данной платформе.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Microsoft Bot Framework в разработке чат-ботов»

УДК 004.9

Информационные технологии

Батунин Максим Евгеньевич, студент факультета математики и ИТ, ФГБОУ ВО «МГУ им. Н. П. Огарева», Россия, г. Саранск

Куляшова Наталья Михайловна, научный руководитель, доцент, канд. физ.-мат. наук, кафедра фундаментальной информатики факультета математики и ИТ, ФГБОУ ВО «МГУ им. Н. П. Огарева», Россия, г. Саранск

MICROSOFT BOT FRAMEWORK В РАЗРАБОТКЕ ЧАТ-БОТОВ

Аннотация: в статье рассматривается роль Microsoft Bot Framework в разработке чат-ботов и его основное преимущество. Кратко описываются принципы работы чат-бота на данной платформе.

Ключевые слова: чат-бот, Microsoft Bot Framework, фреймворк, канал.

Abstract: the article discusses the role of the Microsoft Bot Framework in the development of chat bots and its main advantage. Briefly describes the principles of the chat bot on this platform.

Keywords: chat bot, Microsoft Bot Framework, framework, channel.

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

Популярность чат-ботов увеличилась после их интеграции в различные мессенджеры, сайты и социальные сети. Среди которых, в частности, Telegram, Skype, Facebook, ВКонтакте, Slack и др.

Каждый из сервисов предлагает свой собственный программный интерфейс (API) или набор средств разработки (SDK), что требует индивидуального подхода к каждому из них.

На конференции Microsoft Build 2016, проходившей в Центре Москоне с 30 марта по 1 апреля 2016 года, Microsoft впервые представили свой фреймворк для создания чат-ботов - Microsoft Bot Framework [2; 3]. Он призван отчасти решить вышеописанную проблему, предоставляя собственный SDK и выступая посредником между приложением и популярными сервисами.

В состав фреймворка входят следующие ключевые элементы:

- Bot Builder SDK - набор средств разработки, доступный для C# и Node.js, предназначенный для создания ключевой функциональности бота. Имеет в своей основе Web API и предоставляет протокол общения бота с внешним миром. SDK содержит эмулятор, который позволяет производить отладку ботов, а также набор классов, упрощающий реализацию некоторых ключевых абстракций, таких как, например, многоуровневые диалоги с состоянием и различных элементов, упрощающих взаимодействие с пользователем.

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

- Bot Framework Service - позволяет привязывать чат-бот к одному или нескольким доступным каналам общения, таким как, например, Skype, Slack, Telegram, Facebook Messenger и другие. Для этого достаточно сконфигурировать соединение бота с каналом на портале https : //portal. azure. com.

Основным преимуществом использования платформы Microsoft Bot Framework при создании ботов является возможность единожды написать код и получить возможность интеграции со множеством приложений, реализующих чат - в терминологии платформы называемых каналами (channels). Разработчик самостоятельно настраивает какие каналы будет использовать чат-бот через портал Azure. Все обязанности по интеграции с каналами берет на себя Bot Framework Service, который соединяет приложение бота с конкретными каналами. На данный момент, посредством служб Bot Framework Service, имеется возможность подключения ко многим популярным сервисам, таким как Skype, Telegram, Facebook Messenger, Slack, голосовой помощник Cartana, Kik, Twilio, Email и многим другим. Данный процесс проиллюстрирован в виде схемы (рисунок 1).

Рисунок 1 - Взаимодействие бота с каналами

При публикации бота уже имеется предварительно настроенный канал «Веб-чат», при помощи которого можно протестировать созданного чат-бота, а также внедрить его на веб-страницу на собственном сайте. Помимо стандартных каналов, предоставляемых службой Bot Framework Service, также

есть возможность подключения бота к собственному клиентскому приложению, используя технологию Direct Line в роли канала.

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

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

Каждое взаимодействие между пользователем и чат-ботом через какой-либо канал порождает так называемую активность (activity). Канал может включать дополнительную информацию в активности, которые он отправляет. Важно понять, как бот использует объекты активности для коммуникации с пользователями.

Кратко рассмотрим основные принципы на примере простого бота, умеющего отвечать на приветствия (рисунок 2).

На данный момент существует 9 различных активностей, но на рисунке 2 показаны только две основных.

СonversationUpdate (обновление беседы) - возникает, когда кто-либо (включая бота) присоединяется или удаляется из чата или же меняются метаданные беседы.

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

Рисунок 2 - Передача активностей между сервисом и ботом

Активности поступают от Bot Framework Service к боту посредством HTTP POST запроса. Бот, в свою очередь, отвечает HTTP кодом состояния 200 (ОК). Активность от бота к Bot Framework Service также отправляется отдельным POST запросом и подтверждается кодом состояния 200 от сервиса.

Люди, общаясь между собой, чаще всего говорят по очереди. Бот, в свою очередь, реагирует на ввод пользователя, тем самым, также соблюдая очередность. В Bot Framework SDK ход (turn) состоит из входящей активности от пользователя и активности, отправляемой ботом в качестве ответа. Ход следует воспринимать как некоторую обработку, ассоциированную с получением активности.

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

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

Ядром выполнения в SDK является адаптер (adapter). Все активности приходят в теле HTTP запроса, в виде JSON объекта. Данный JSON десериализуется в объект активности, который передается адаптеру с вызовом process activity метода. При получении активности, адаптер создает контекст хода и вызывает промежуточное ПО.

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

Библиографический список:

1. Чат-боты, и как нам с этим поможет Microsoft [Электронный ресурс] -[М., 2016]. - Режим доступа: https://www.viva64.eom/ru/b/0433/.

2. Azure Bot Service Documentation [Электронный ресурс]. - Режим доступа: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-basics.

3. Hello, Bot! Чат-боты - следующее поколение приложений? [Электронный ресурс] - [М., 2016]. - Режим доступа: https://msdn.microsoft.com/ru-ru/mt718503.aspx.

i Надоели баннеры? Вы всегда можете отключить рекламу.