Нужен чат-бот, но не умеете программировать? Предлагаем подборку лучших сервисов проектирования ботов. А некоторые из них - даже бесплатны 🙂
Если вы бизнесмен, чат-боты наверняка пригодятся вам в скором времени. Звучит категорично, но это так. У компании, работающей с клиентами (то есть, у каждой бренда) найдется пара-тройка процессов для автоматизации. Боты в мессенджерах разгрузят саппорт, повысят уровень обслуживания клиентов, сократят затраты на персонал и так далее
И для этого необязательно работать онлайн. Чат-боты заменят даже официантов - и такие кейсы уже появляются в Штатах. Пофантазируем: вы заходите в любимое кафе, где завтракаете каждое утро. На стене у стойки - плакат с именем бота-официанта (найти его можно по поиску в приложениях). Вы загружаете мессенджер и пишете:
Привет, бот!
Привет, Андрей. Тебе как обычно?
Да, только эспрессо вместо сока.
Заказ принят!
Через 15 минут вам приносят завтрак. Бот, имитирующий человека, принимает заказы через мессенджер, консультирует по меню - и главное, хранит историю запросов. Поэтому необязательно каждый раз повторять одно - системе достаточно отправить «Мне как в прошлый раз», и она поймет. После оформления заказ отправляется на кухню, и чуть позже еду приносит «живой» официант.
Это не отвлеченная фантазия. Похожие боты уже внедряются в кофейнях США - и ждет первопроходцев в России. Создать такого робота достаточно просто, а взаимодействие с ним впечатляет. Как видите, автоматизация процессов чат-ботами доступна не только онлайн, но и в индустрии общепита. Боты уже умеют бронировать билеты, искать информацию в сети (текст, визуальный контент), консультировать по продуктам компании и прочее. Задумайтесь, как можно применить ботов к вашему бизнесу? И сколько они вам сэкономят?
Повторимся, создание чат-ботов - не такой сложный процесс, каким кажется. Появилось достаточно платформ, позволяющих спроектировать «робота» для мессенджеров без познаний в дизайне и кодинге. Рассмотрим 5 удобных сервисов проектирования чат-ботов.
5 лучших решений
Мультиплатформенное решение по созданию ботов. Поддерживаемые площадки:
Особенности сервиса:
- обширные библиотеки контента;
- речевые интерфейсы;
- крупное коммьюнити (более 225 тысяч участников);
- обучаемость созданных ботов;
- поддержка большинства языков.
И главное - сервис бесплатный! Кроме продвинутых услуг: обучение персонала, обзор кода, хостинг и лицензии, расширенная поддержка и прочее. Также платформа предлагает интересное решение: AIaaS (искусственный интеллект как услуга). Используя ресурсы Pandorabots (или свой любимый текстовый редактор), вы создаете бота, а затем активируете его за считанные минуты через встроенный RESTful API.
«Все, что вам нужно при создании ботов. Для мессенджеров, Slack и Telegram», - гласит первое окно сервиса. Заявленные преимущества:
- Настоящая кросс-платформенность. Бот, созданный единожды, работает на всех площадках;
- Удобный редактор бота, не требует знания кода;
- Более 90 встроенных интеграций;
- Хостинг.
Ценообразование включает два тарифа: бесплатный (5 ботов, 100 интеракций, email-поддержка) и стандартный ($19/месяц, 15 ботов, 1500 интеракций). Но не только. К стандартному плану за $10/месяц добавляется 5 ботов, а за $25 -25000 интеракций.
За интеракцию, или взаимодействие, система считает каждый случай запуска бота пользователем.
Платформа создания facebook-ботов с очаровательным логотипом-осьминогом 🙂 Сервис не требует знания кода, он бесплатный и простой. Но - забудьте о кросс-платформенности, ведь ManyChat поддерживает только Facebook Messenger.
Бот проектируется на площадке за несколько минут - интуитивно-понятный интерфейс способствует этому. Работа с мессенджером Facebook предполагает несколько преимуществ, на которых фокусируется ManyChat. Так, когда человек начинает переписываться с вашей корпоративной страницей (ботом), он автоматически становится подписчиком. Теперь ему можно рассылать обновления, уведомления, прочий контент.
Автоматизируйте взаимодействия бота с пользователями, создайте контент для рассылок, настройте дату/время отправки - и отдыхайте, остальное бот сделает сам;) К тому же, ManyChat применим как платформа автопостинга по RSS, Facebook, Twitter, YouTube.
Словом, ManyChat - удобное решение, которому недостает лишь кросс-платформенности.
Сервис работает со многими платформами: Facebook Messenger, Twitter, Slack, Smooch, Intercom, Telegram, KiK, Twilio, Webhooks, Luis.ai, Wit.ai, GitHub. Из особенностей:
У Meya подробнейший прайс-лист (на фоне остальных героев подборки) - целых 5 тарифов. Не факт, что это хорошо - глаза слегка разбегаются от обилия вариантов.
- Бесплатный (200 сообщений, 1 бот, 1 сотрудник, поддержка сообщества);
- Стартап ($49/месяц, 10 000 сообщений, 5 ботов, 2 сотрудника, «бронзовый» саппорт и аналитика);
- Бизнес ($99/месяц, 20000 сообщений, боты и сотрудники без ограничений, «серебряный» саппорт, аналитика, экспорт Github);
- Организация ($199/месяц, гибкое ценообразование - 50 000 сообщений или 10 000 пользователей, боты и сотрудники без ограничений, «золотой» саппорт, аналитика, экспорт Github);
- Предприятие (цена по договоренности, гибкое ценообразование - более 50 000 сообщений или 10 000 пользователей, боты и сотрудники без ограничений, «платиновый» саппорт, аналитика, экспорт Github).
Как резюме: интересная платформа с широким функционалом.
Гвоздь подборки. Платформа позволяет создавать ботов для Facebook и Telegram. На подходе Slack, KiK, WhatsApp и Viber. Сервис предлагает интуитивно-понятный функционал, не требующий знания кода. ИИ платформы распознает запросы пользователей в широком диапазоне, и отвечает на них, а само решение поддерживает интеграцию со многими сервисами (twitter, YouTube, Instagram и прочее).
ChatFuel уже используют National Geographic, TechCrunch, UBER. А главное - платформа бесплатная! Поправка - до 100 000 активаций бота в месяц. Но этот лимит - условный, ведь он в 2-5 раз шире, чем условия конкурентов. Кажется, создатели ChatFuel сделали самое привлекательное решение на рынке. Как минимум, по соотношению цены/качества.
Вместо заключения
Мы рассмотрели ТОП-5 решений по созданию ботов. Список доступных платформ, функционал, цена - все разнится от решения к решению, но вы наверняка найдете сервис по своим нуждам.
Но помните, если ваше время стоит дорого, и тратить его на проектирование бота вы не хотите, или если вам нужен нестандартный продукт с особенным функционалом - берите свои идеи и обращайтесь в РобоМаркетинг 🙂 Мы спроектируем для вас ботов любой сложности, без функциональных ограничений, лимитов и ежемесячных плат за подписку.
К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.
Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.
Авторизация
Нам понадобится библиотека vk_api . Авторизоваться в вк можно двумя способами:
- Как пользователь
- Как сообщество
В первом случае надо будет ввести логин и пароль. Во втором случае в группе надо включить "Сообщения сообщества" и создать ключ доступа к API:
import time import vk_api vk = vk_api.VkApi(login = "login", password = "password") #vk_api.VkApi(token = "a02d...e83fd") #Авторизоваться как сообщество vk.auth()
Отправка сообщений
Теперь напишем короткую функцию, которая отправляет сообщение выбранному человеку.
P.S. Сообщество может отправлять сообщения только ранее писавшим пользователям.
def write_msg(user_id, s): vk.method("messages.send", {"user_id":user_id,"message":s})
В vk.method мы можем вызывать любой метод из VK API и передавать параметры в виде словаря.
В данном случае мы вызываем метод messages.send и в качестве параметров передаем id пользователя и текст сообщения.
Прием сообщений
Отлично! Отправлять сообщения мы научились, осталось научиться их принимать. Для этого нам нужен метод messages.get .
Несколько параметров, на которые стоит обратить внимание:
1) out - если этот параметр равен 1, сервер вернет исходящие сообщения.
2) count - количество сообщений, которое необходимо получить.
3) time_offset - максимальное время, прошедшее с момента отправки сообщения до текущего момента в секундах.
4) last_message_id - идентификатор сообщения, полученного перед тем, которое нужно вернуть последним (при условии, что после него было получено не более count сообщений)
values = {"out": 0,"count": 100,"time_offset": 60} vk.method("messages.get", values)
В нашем случае этот метод вернет все полученные сообщения за последние 60 сек, если их конечно было меньше 100, а если больше, то последние 100.
В итоге мы получаем список items:
{u"count": 3441, u"items": [{u"body": u"\u041f\u0438\u0448\u0435\u043c \u0431\u043e\u0442\u0430 \u0434\u043b\u044f \u0432\u043a!", u"date": 1491934484, u"id": 7387, u"out": 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592}, {u"body": u"\u041f\u0440\u0438\u0432\u0435\u0442 \u0425\u0430\u0431\u0440!", u"date": 1491934479, u"id": 7386, u"out": 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592}]}
Если объяснять простыми словами, то items - это то, что можно выделить в диалоге.
Финальный аккорд, делаем вечный цикл, где на каждое сообщение будем отвечать "Привет, Хабр!".
while True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response["items"]["id"] for item in response["items"]: write_msg(item,u"Привет, Хабр!") time.sleep(1)
Чат-бот готов.
P.S. Мы запоминаем параметр last_message_id, чтобы в следующий раз обрабатывать только новые сообщения.
Полный код
# -*- coding: utf-8 -*- import time import vk_api vk = vk_api.VkApi(login = "login", password = "password") #vk_api.VkApi(token = "a02d...e83fd") #Авторизоваться как сообщество vk.auth() values = {"out": 0,"count": 100,"time_offset": 60} def write_msg(user_id, s): vk.method("messages.send", {"user_id":user_id,"message":s}) while True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response["items"]["id"] for item in response["items"]: write_msg(item,u"Привет, Хабр!") time.sleep(1)
Получилось 17 строк кода. Успехов!
UPD 17.09.18:
К сожалению в новой версии (5.80) VK API был убран метод "messages.get" и данная статья потеряла актуальность. Теперь для создания ботов используйте систему longpoll. Пример на модуле vk_api для Python вы можете найти .
Telegram - популярный мессенджер, за разработку которого отвечает Павел Дуров. На данный момент его используют более сотни миллионов человек. Такая популярность связана с внушительными возможностями приложения. Помимо отправки сообщений живым людям, мессенджер предлагает ряд других функций. И в первую очередь - взаимодействие с ботами . Это специальные программы, запрограммированные на выполнение определенных действий, реализованные через чат Telegram.
Сейчас роботы в Телеграмм очень востребованы. Они имеются практически у любого популярного интернет-ресурса, добавляя пользователям комфорта. Поэтому владельцев крупных групп, сайтов, порталов или просто обычных посетителей интернета интересует то, как создать бота в Телеграмм.
Есть два варианта решения этой задачи. Первый является самым сложным, для его реализации требуются знания в области программирования. Бота можно создать посредством Telegram API . Второй - гораздо более простой. Можно воспользоваться специальным ресурсом, который составит программу бота по вашим указаниям. Сайтов, предлагающих такие возможности очень много. Также существуют специальные боты в Telegram, выполняющие данную задачу. Но в статье пойдет речь о ресурсе manybot.io, который является одним из самых популярных.
Процедура создания
Для создания бота достаточно выполнить 7 простых шагов:
- Вводим в окне поиска Manybot, открываем и кликаем на кнопку Start;
- В появившемся меню выбираем русский язык, далее - пункт «Добавить нового бота»;
- Вам предложат перейти на @BotFather, делаем это, начинаем с ним чат, отправляем сообщение /newbot;
- Поочередно вводим название аккаунта и техническое имя;
- Сохраняем отправленный API-токен;
- Переходим обратно к @Manibot, отправляем ему полученный API-токен;
- Вводим описание аккаунта.
На этом процедура завершена, созданного робота можно найти через поиск и начать его использование. Теперь пользователю нужно заняться наполнением аккаунта, включением новых команд, возможностей и настроек. С этим получится разобраться по ходу дела.
Это довольно простой способ того, как сделать бота в Telegram . Если же вы хорошо разбираетесь в программировании, то можно взяться за выполнение задачи собственными силами. На сайте code.telegram.org подробно расписана информация о Telegram API и программировании на нем. Все статьи представлены на английском языке.
В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных "фишек" Telegram является его якобы защищённость - по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.
В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы "запилим" полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории .
Документация, описывающая процесс взаимодействия с ботами Telegram находится . Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов - telepot . Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.
Как создать Telegram бота?
Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:
- Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно
- Добавляем к себе в контакт-лист бота с именем BotFather
- Запускаем процедуру "общения" с ботом нажатием кнопки Start . Далее перед нами предстанет список команд точно как на скриншоте.
- Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot . Например, DjangoBot или Django_bot.
- Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю:)
После создания бота, обратите внимание на строку с текстом:
Use this token to access the HTTP API:
За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:
- Присвоить боту описание
- Установить аватар
- Поменять token
Приступаем к кодированию
Как я ранее уже упоминал, мы будем писать веб-приложение на Django . Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates ) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.
- Использование вызова API метода getUpdates
- Установка Webhook
Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook . Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить от Let"s Encrypt.
Подробнее о getUpdates и setWebhook можно почитать соответственно и .
Итак, вернёмся к python библиотеке для работы с Telegram - telepot . На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:
Pip install telepot
Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:
Import telepot token = "123456" TelegramBot = telepot.Bot(token) print TelegramBot.getMe()
Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:
{u"username": u"PythonPlanetBot", u"first_name": u"Python Planet Bot", u"id": 199266571}
Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.
Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start
Выполняем код:
TelegramBot.getUpdates() [{u"message": {u"date": 1459927254, u"text": u"/start", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 1, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179764}]
Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update . Внутри Update находится объект Message . Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.
TelegramBot.getUpdates(649179764+1) [{u"message": {u"date": 1459928527, u"text": u"hello bro", u"from": {u"username": u"adilkhash", u"first_name": u"Adil", u"id": 31337}, u"message_id": 13, u"chat": {u"username": u"adilkhash", u"first_name": u"Adil", u"type": u"private", u"id": 7350}}, u"update_id": 649179765}]
На этапе написания простейшего Telegram бота нам этих вызовов достаточно. Приступим к написанию Django приложения для обслуживания наших пользователей.
Простая функция парсинга RSS фида Planet Python выглядит вот так:
# -*- coding: utf8 -*- from xml.etree import cElementTree import requests def parse_planetpy_rss(): """Parses first 10 items from http://planetpython.org/rss20.xml """ response = requests.get("http://planetpython.org/rss20.xml") parsed_xml = cElementTree.fromstring(response.content) items = for node in parsed_xml.iter(): if node.tag == "item": item = {} for item_node in list(node): if item_node.tag == "title": item["title"] = item_node.text if item_node.tag == "link": item["link"] = item_node.text items.append(item) return items[:10]
По многочисленным просьбам, которыми я был засыпан после — рассказываю пошаговую инструкцию создания бота для Вконтакте, который может отвечать человекоподобными сообщениями в личных сообщениях.
Шаг 1
Создаем профиль на iii.ru
Видим кнопку «Создать инфа» — она перебросит вас на страницу регистрации
Проходим элементарную регистрацию (можно войти через одну из трех социалок на выбор)
У вас будет немного другой интерфейс, но это сейчас не суть. Вам нужно будет создать «инфа» и получить его уникальный идентификатор
Так выглядит уникальный идентификатор (все, что идет после iii.ru/inf/)
Шаг 2
Скачиваем программу с сайта qsme.ru (название программы банально до невозможного «Бот»). Есть версии под Windows, Linux и MacOS. Перед установкой программы нужно убедиться, что у вас стоит Java Runtime Environment, так как без него программа даже не запустится (скачать последний JRE можно , если что). После того, как вы установили JRE и установили программу «Бот» — «софтина» запросит у вас ключ. Не бойтесь — полный функционал программы доступен бесплатно. Все, что нужно сделать — запросить ключ на почту и после получения ввести его в поле, которое появляется после загрузки программы. Программа позволит вам использовать один профиль любой из возможных социалок, с которыми работает Qsme «Бот» (Одноклассники, Мамба, Вконтакте и LovePlanet).
В нашем случае это Вконтакте 🙂
Шаг 3
Назначение заданий — это самый важный шаг, после которого ваш бот «заговорит». 🙂 Необходимо найти кнопку «Настроить задания», которая находится прямо на новосозданной анкете и настроить приблизительно так, как вы видите на скриншоте ниже.
Приблизительные настройки задания для анкеты
Остальные настройки, как говорится, по вашему вкусу. 😉
Финита ля комедиа
Собственно говоря — это все, но есть еще несколько мелких деталей. Во-первых напомню, что своего бота вы можете «кастомизировать» и «модифицировать» так, как вашей душеньке угодно. Научив его отвечать на сообщения так, как хочется вам. Ну или может быть вы филолог и хотите наловчиться в семантических связях или что-то еще. В любом случае — это уже совершенно другая история. О кастомизации я раскажу несколько позже.