Pull to refresh

Разработка интеллектуальных ботов с помощью Microsoft Bot Framework, Azure Cognitive Services и NER систем. Часть 1

Reading time 4 min
Views 11K
На сегодняшний момент лишь мессенджеры (и, частично, игры) показывают стабильный рост аудитории на фоне падения всех статистических показателей классических мобильных приложений. WhatsApp заявляет об 1 миллиарде активных пользователях, Facebook Messenger – 900 миллионов, WeChat – 700 миллионов, а мессенджеры уже обогнали социальные сети по активной аудитории.

Для миллионов людей Facebook Messenger может стать первым местом, где они столкнутся с чатботами. И если люди начнут ими пользоваться, то это может стать новым Клондайком для разработчиков программного обеспечения — впервые после того, как компания Apple открыла App Store.

The Verge



Логичным является желание мессенджеров воспользоваться сложившейся ситуацией и попытаться еще больше потестить традиционные СМИ, и даже гегемонию Google в плане поиска. И это желание вылилось в открытие почти всеми популярными мессенджерами публичных Bot API. Несмотря на то, что формально мессенджеры предоставляют доступ разработчикам к своей многочисленной публике, по факту, эти же самые разработчики будут приводить своих же пользователей обратно в мессенджеры. Но не будем сильно акцентировать внимание на теории заговоров или философствовать на тему куда это может нас привести, а сконцентрируемся на технических вопросах создания интеллектуальных ботов.

Примеры интеллектуальных ботов


Msg.ai позволяет брендам общаться с пользователями с помощью мессенджеров.

Sony Pictures заменила 70 операторов одним чатботом.

19-летний разработчик создал бесплатного бота, который вернул водителям $3 миллиона за штрафы за парковку.



Еще примеры. У иранского бота Тины (еще ее называют иранской Siri) 2,6 млн подписчиков в Telegram.

Microsoft Xiaoice (Китай) — 17-летняя девушка, которая живет в WeChat и Weibo. Этого бота называют наибольшим тестом Тьюринга в истории. Робот умеет отвечать на вопросы, распознавать эмоции и даже сопереживать. Многие пользователи даже не понимают, что общаются с ботом.

X2AI — стартап с Кремниевой долины создал бота, который помогает сирийским беженцам в Ливане решать их психологические проблемы, связанные с войной.

В Украине самым популярным ботом является Opendatabot, который, используя открытые наборы данных (судебный реестр и базу предпринимателей и бизнесов) позволяет проверять контрагентов и защититься от рейдерских атак путем уведомлений о несанкционированных изменениях записей в едином реестре.



ДонорUA.Бот (доступный для Skype, Telegram, Facebook Messenger) позволяет проверить, есть ли у вас противопоказания к донорству (абсолютные или временные) на русском или украинском языке:



Буду благодарен, если в комментариях вы набросаете ссылки на другие интересные примеры ботов (в частности, работающие в нашем регионе).

Иногда интеллектуальные боты «уходят» не туда, и мы можем наблюдать интересные результаты. Например, Twitter-бот TayTweets от Microsoft, который учился на твитах, которые ему слали пользователи. Конечно же, люди плохого роботов не научат (сарказм), поэтому уже через 24 часа бот начал выдавать ксенофобские и расиские твиты:





Microsoft вынуждена была удалить бота из публичного доступа. Это говорит о том, что боты — все-таки инструмент, а каким он будет — зависит от данных и методов обучения.

Зачем боты?


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

  1. Легкий старт. Разработать бот можно достаточно быстро и легко. Гораздо легче, чем разработать мобильное приложение или бот.
  2. После разработки бота он автоматически доступен в мессенджерах и социальных сетях, а значит, нужно потратить меньше времени и ресурсов для маркетинга.
  3. Это дешевле, чем разрабатывать мобильные приложения или сайты. Так как боты работают на существующих инфраструктурах, то все что вам нужно — база данных и сервис, который будет отвечать на вопросы и предоставлять данные по запросу.
  4. Диалоговый интерфейс понятен каждому, дизайн диалогов — все же более легкая задача, нежели разработка UX/UI для мобильных приложений или графического дизайна для сайта.

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

И, все таки, есть множество сценариев, где боты — более выгодное решение. Например, для работы с потенциальными клиентами (user engagement), кол-центры, заказа чего-то (пиццы, такси), для создания баз знаний в конкретных доменах (как в случае с ДонорUA.Бот).

Какие новые рынки и работу для разработчиков создают боты?

  • разработка инструментов и платформ для AI/ML/NLP;
  • разработка Bot frameworks;
  • магазины ботов;
  • разработка ботов;
  • автоматизация процессов;
  • боты в маркетинге.

Кто уже включился в игру под названием «чатботы»? Это Telegram, Microsoft Skype, WeChat, Slack, Facebook Messenger. Каждая из платформ предлагает свои уникальные фишки, например, в Telegram есть инлайн боты, которые можно подключать в разговоре с другими людьми, но в целом возможности у всех платформ более менее одинаковые.

Создаем простого чатбота


Процесс создания чат-бота состоит из нескольких частей:

  1. Регистрация бота в мессенджере. В Telegram за это отвечает @BotFather, в Messenger нужно создать страницу, которая и будет ботом и связать ее в настройках с приложением на портале разработчика. Для желающих написать бота для Skype есть отдельный портал, на котором нужно добавить своего бота.
  2. Создание веб-сервиса (webhooks endpoint), который будет принимать запросы и формировать ответы. Ссылку на веб-сервис нужно прописать в настройках вашего бота.
  3. Написание логики обработки команд (в простых случаях) или не структурированных текстов с помощью NLP/ML/NER инструментов. (о них будем говорить позже).
  4. Создание базы данных, если вы хотите отслеживать диалоги и создавать более тесное и персонифицированное общение с вашими пользователями.
  5. Собственно, все. Тестируем, запускаем, пользуемся.

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

/setcommands - change bot commands list

OK. Send me a list of commands for your bot. Please use this format:
command1 - Description
command2 - Another description

У Facebook такую роль исполняет Persistent Menu (до 5 элементов):



Конечно же, это не единственные UX/UI возможности ботов, и список интересных фич постоянно увеличивается.

— В следующей части поговорим о Microsoft Bot Framework для быстрой разработки ботов для ~10 платформ.
Tags:
Hubs:
+14
Comments 2
Comments Comments 2

Articles