Ich sage euch: man muß noch Chaos in sich haben, um einen tanzenden Stern gebären zu können (“Also sprach Zarathustra”, Friedrich Nietzsche)
Строим новую экосистему
Уже довольно приличное время тема чат-ботов, возбуждающая множество людей, в тренде. Одни думают, что боты это очередной большой скачёк, который вскоре заменит приложения, другие, в то-же самое время считают, что это просто игрушка, причуда, обреченная на провал.
Воздержимся от обсуждения будущего чат-ботов и вместо этого постараемся пролить свет на то, как они работают и как их можно использовать.
Что такое чат-бот?
Чат-бот — сервис или инструмент, робот, который может общаться текстовыми сообщениями. Чат-бот пытается понять, что ему говорят и в соответствии с настройками даёт адекватный, похожий на человеческий, ответ или непосредственно решает проблему своего визави.
Робот общается с человеком
Вспомните Cleverbot — концепция чат-ботов не новинка. Но что, именно сегодня, их делает столь актуальными:
Пользователи интернет-сетей тратят колоссальное время на программы обмена сообщениями для переписки (например, Facebook Messenger, Slack и т.д.). Мессенджеры — это быстро растущий сегмент рынка и с их помощью можно привлечь потенциальных клиентов.
Современные чат-боты полагаются не только на текст, они часто могут показать нужные карты, фотографии и картинки, ссылки и формы, обеспечивая приложение интерактивностью.
У бота Facebook замечательный нетекстовой интерфейс (Skyskanner)
Резоны использования чат-ботов многообразны, например, диалог с клиентами в интернет-магазине, комментировнание новостей, игр и прочее, прочее, прочее, что можно придумать. Но хороший чат-бот не должен решать множество задач — бот последних новостей не должны делать заказы в китайской кухне. Он делает одну вещь, но делает её хорошо.
Как создаются чат-боты?
Сегодня строить свои чат-боты с нуля не есть хорошая идея, существует достаточно много фреймворков и сервисов, которые могут в этом помочь. Однако, необходимо понимать как работают роботы и что должен сделать разработчик что-бы научить их говорить.
Backend: чат-бот может быть выполнен на любом из популярных языков программирования, имеющего веб-API. Это может быть Node.js или PHP, кроме того, есть множество бот-библиотек на Java и Python. Backend получает сообщение, вычисляет реакцию и возвращает ответ пользователю.
Frontend: может быть, это одно из самых популярных приложений (Facebook Messenger, Slack, Telegram) или Realtime Chat With Node.js с интерфейсом простого чата, который некоторое время назад разработали на tutorialzine.com. Вы не ограничены единственной платформой — тот же бот может быть реализован в более чем в одном месте.
Backend+Frontend: на Вашем веб-сервере должен быть webhooks — прерывание, по которому обеспечивается взаимодействие между чатом URL-соединения и платформой бота. Webhooks позволит безопасно отправлять и получать сообщения с помощью простых HTTP-запросов. Для всех основных мессенджеров имеются подробные руководства о подключении к ним вашего бота.
Упрощать модель Chatbot
Вот теперь бот подключен и может слушать и отвечать пользователям. Единственное, что осталось сделать, это снабдить его «мозгами».
Dumb & Smart боты
В зависимости от способа программирования боты можно разделить на две основные категории: командные (dumb bots — тупые боты) и обучаемые (smart bots — умные боты).
Командные боты оперируют ключевыми словами, которые могут распознать. Каждая команда — это вручную запрограммированная разработчиком с использованием регулярных выражений или других методов анализа строк реакция на совокупность ключевых слов. Если пользователь высказывается за пределами запрограммированных сценариев, то бот не сможет ответить.
Хотя возможности «тупых» ботов ограничены, их бывает достаточно для большинства бот-конструкций, особенно в сочетании с другими типами пользовательского интерфейса, например, вопросы с множественным выбором.
Умные боты используют алгоритмы искусственного интеллекта для общения с пользователями. Вместо того чтобы искать предопределенную реакцию на ключевые слова, умные боты придумывают адекватные ответы «на лету». Они следят за контекстом разговора и запоминают всё, о чём был разговор ранее, так же, как это делает человек!
Обработка естественного языка и машинное обучение нелегкая задача, особенно, для новичков. К счастью, не всё нужно делать самому. Сейчас есть множество отличных библиотек (ConvNetJS, nlp_compromise, TextBlob ) и сервисов (wit.ai, api.ai), которые помогут вам с обучением ботов некоторым разговорным навыкам.
Свободно беседа с Abe, ботом-финансовым советником
Если нам удалось вас заинтересовать и вам захотелось сделать свой первый чат-бот, то вот несколько советов. В зависимости от времени, которое Вы готовы посвятить своим опытам, можно пойти по пути DIY (do it yourself — «сделай сам») и построить свой бот с нуля или просто использовать готовую конструкцию, которая сэкономит вам массу времени.
BotKit — самый популярный набор инструментов для создания роботов. Проект с открытым исходным кодом и очень хорошо документирован.
Claudia — построитель чат-ботов для развертывания непосредственно под AWS Lambdaએ.
Bottr — супер простой фреймворк Node.js со встроенным приложением для тестирования. Удивительный настолько, что если вы захотите просто поиграть, то это займет не более 10 минут.
После того, как вы завершите свой бот, большинство из этих конструкций позволят легко подключить его к популярным платформам обмена сообщениями, что очень значительно экономит время, так как все основные платформы имеют различные процессы установки.
Если вы не хотите проводить разработку в целом, то можете доверится одному из множества доступных сервисов построения ботов:
wit.ai — служба, которая осуществляет прием текстовых или голосовых данных и использует NLP для генерации и управления ответами.
Chatfuel — Инструмент ботов для Facebook Messenger или Telegram. Программирование не требуется.
motion.ai — Исчерпывающая служба для создания ботов с поддержкой многих платформ текстовых сообщений.
api.ai — Обработка естественного языка, что позволяет делать боты и определять сценарии разговора.
Некоторые примеры
Хотя чат-боты пока кажутся очень футуристические, но они уже здесь и свободно доступны для общественности. Ниже приведен список всего нескольких интересных роботов, на которые мы наткнулись. Некоторые из них даже не нужно устанавливать, просто найдите их в Facebook Messenger и скажите: Hello!
Если Вы просматриваете Botlist или Telegram Bot Store, то увидите, что разработчики постоянно работают над ботами и уже сейчас есть их список насчитывает несколько тысяч ботов.
Вывод
Популярность идей чат-ботов среди разработчиков, в бизнесе и в приложениях мессенджеров создаёт совершенно новую экосистему. Нам придется подождать и посмотреть насколько хорошо боты будут приняты широкой публикой, и смогут ли они стать следующей большой ценностью, которая доставит нам некоторое удовольствие в наших играх с искуственным интеллектом.