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

    На сегодняшний момент лишь мессенджеры (и, частично, игры) показывают стабильный рост аудитории на фоне падения всех статистических показателей классических мобильных приложений. 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 платформ.
    • +14
    • 9,3k
    • 2
    Поделиться публикацией

    Комментарии 2

      –1
      Telegram более менее еще юзабельный т.к. поддерживает картинки .gif и есть всякие стикеры, WhatsApp не имеет клиента даже под iPad, сплю и вижу чтобы все перешли с него на что-нибудь другое.

      Вообще есть тьма ботов и скриптов с того же irc'а, даже писать новых не надо… найти бы нормальный irc клиент для мобильных устройств, чтобы в фоне висел и подключение не разрывал. Российские irc сервера еще живые? А то кроме freenode и rizon подключиться то особо некуда… Такое ощущение что в irc'ах остались одни боты :(
        –1
        Открывая статью я всё-таки ожидал увидеть про Microsoft Bot Framework. А нет ничего кроме общеизвестных вещей.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое