Я несколько лет занимался ботоводством в контактике и как-нибудь напишу об этом отдельно. Мои боты умели общаться с другими пользователями, но имели два существенных минуса: не умели поддерживать контекст беседы и не имели склонности к самостоятельному обучению. Мне же хотелось большего - чтобы, например, можно было загрузить книгу Дюма и мои боты начали бы общаться как д'Артаньян, тысяча чертей, сударь, защищайтесь! И еще, чтобы бот, если не знает ответ, мог бы заглянуть в википедию, на сайт погоды, куда угодно в интернете и самообучиться там. У этой проблемы есть как минимум два решения:

1. Разобраться как работают машинное обучение и нейронные сети и написать своё с блэк джеком и соответствующими особами.
2. Использовать готовые решения, благо к текущему моменту только ленивый не запилил решения для чат-бота, работающее из коробки и по умолчанию работающее с кучей мессенджеров, соц сетей и веб-форм на сайт.
Разумеется, как настоящий инженер, я выбрал путь номер один, лекции яндекса и мфти, и даже успел испытать радость, когда наконец-то понял, для чего полтора года в институте я изучал линейную алгебру. Впрочем, радость быстро закончилась и я начал засыпать на лекциях.
А недавно Microsoft приходил в гости и рассказал про машинное обучение, бесплатный доступ и я решился. Завел тот самый пробный и бесплатный аккаунт на azure. Бесстрашно сообщил данные кредитной карты. И запилил первого бота. Который умеет отвечать на вопросы по шаблонам. То есть спору нет, за час можно запустить бота, который будет подключен к скайпу, bing, web и что там еще у майкрософта в приоритете. Но из коробки он умеет только обращаться в базу за ответами.

 

Разные английские видосы показывают, что azure bot умеет поддерживать контекст, определять, что нужно пользователю и даже отличать машины от котиков. Искать эмоции людей на фотографиях, распознавать голос, видео и кучу всего. Но нигде, черт побери, нет описания, как запустить этот искусственный интеллект, который (sic!) умеет самообучаться и поддерживать контекст. (Небольшая ремарка - так как я чайник в этих ваших высоких технологиях, я и пишу по рабоче-крестьянски, как думаю и понимаю, поэтому не обессудьте). Возможно, это можно реализовать там же в azure на питоне или R - для этого надо какой-то из них изучить, что не добавляет оптимизма.

Но как сказано: "Ищущий да обрящет!" И я набрел на хабро-статью 8 инструментов для создания личного или делового чат бота. И вот они восемь платформ для создания ботов:

  1. Morph.ai
  2. Flow XO
  3. Botsify
  4. API.AI
  5. Motion.ai
  6. Chatfuel
  7. Manybot
  8. Recast

Решил, что попробую создать бота и написать что получилось и у кого есть решение, умное из коробки.
На текущий момент попробовал Chatfuel.
Они пишут про AI, что вроде бы намекает на искусственный интеллект. На самом деле разворачивается бот в facebook messenger за считанные минуты, но он такой же болванчик, как и мои, домашнего производства. Про AI есть абзац в хелпе:
"The AI will help your bot understand the chat messages your users send. For example some users might send a greeting like “Hi”, “Hello” or similar, if you did not set up your bot’s AI it would send the main menu because your bot does not understand the user’s input. Sending the main menu might make sense if the user sent a greeting, but now imagine the user sent “Bye”.

A very useful thing you can do with the AI is to make it understand messages like “What do you have on your lunch menu?” and redirect users to the lunch menu block of your bot immediately without them having to manoeuvre to it using the buttons first."
Если коротко, то там написано, что вы можете написать паттерны, а бот сумеет выдернуть эти паттерны из незнакомого текста и сможет ответить одним из предопределенных вами шаблонов.

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