Pull to refresh

Чат-боты — это больше, чем вы думали, и вот почему

Reading time5 min
Views17K

В этой статье хочу поделиться некоторыми тезисами на тему создания чат-ботов и разработки подобных решений. Я работаю Python Software Engineer в Grid Dynamics. На статью меня, в том числе, натолкнуло участие во внутреннем проекте, который за полгода вырос, по сути, до мини-отдела по разработке ботов. Цель данного материала — посмотреть на чат-боты под другим углом: не как на разработку, которую может реализовать даже новичок в программировании, а как на функциональное и коммерчески выгодное решение. 

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

Что такое чат-бот?

Для начала стоит понять одну фундаментальную вещь: чат-бот — это, прежде всего, приложение, которое ничем не уступает нативному приложению или сайту. В основе всех упомянутых выше решений обычно лежит пользовательский интерфейс (UI, Front-End) и какой-то набор действий со стороны сервера, который обрабатывает запросы пользователя (Server, Back-End), а также взаимодействует с базой данных и прочими сервисами, необходимыми для реализации требований к продукту. Это стандартная классификация, ничего другого современный интернет нам предложить не может.

По сути, чат-бот — это такой же продукт, как и сайт, но он имеет одну важную особенность: работа над пользовательским интерфейсом отдается в третьи руки. То есть мы реализовываем логику работы приложения, а отображение и взаимодействие проводим через интерфейс чата (естественно, в современном понимании это какой-либо мессенджер). На данном этапе стоит отбросить вопрос построения этого самого интерфейса в угоду удобности использования через третье приложение (пресловутый UX), а также сам процесс адаптации представления вашего приложения к интерфейсу и возможностям чат-приложения.

Какие особенности задач которые решает чат-бот?

Учитывая ответ на вопрос, что такое чат-бот, мы можем сделать вывод, что он может решать тот же спектр задач, что и любой другой продукт. Естественно, учитывая некоторые особенности:

  • зачастую минимальная возможность взаимодействия с файловой системой и операционной системой пользователя (в отличие от нативного приложения);

  • ограниченность интерфейса выбранным чат-приложением;

  • зависимость от работоспособности внешнего продукта (это очень актуально в последнее время);

  • максимально затрудненное автоматизированное тестирование.

Преимущества выбора чат-бота для реализации продукта

Основное преимущество чат-бота в том, что пользователь находится в знакомом и понятном для него интерфейсе и взаимодействует с нашим приложением, не теряя фокуса на общении. Особенно это важно для ботов, которые решают задачи внутри компании/команды.

Соответственно, мы можем себе позволить не тратить отдельного времени на разработку пользовательского интерфейса и адаптировать наши вводные данные к возможностям мессенджера. Та же ситуация и с тестированием этого интерфейса. Останется протестировать только ваш непосредственный функционал.

Конечно же, наибольшая полезность в готовом интерфейсе — это то, что у всех, кто пользуется вашим приложением, при правильной и логичной архитектуре, итоговый результат будет выглядеть одинаково и максимально предсказуемо. Маленьким плюсом можно считать также возможность масштабирования за счет поднятия новых идентичных ботов, при должной архитектуре на одном сервере.

В чем сложности создания чат-ботов?

Основная сложность в создании приложения под мессенджеры — это конструирование удобного и функционального  интерфейса, исходя из того, какие особенности есть у нас в распоряжении внутри мессенджера. Соответственно, создавая определенные user-flow, мы имеем сложности, с которыми стоит смириться, а иногда, как в случае со Slack-ом, — огромные возможности, исходя из тех «блоков», которые нам позволено использовать.

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

Чат-боты в реальной жизни

Давайте попробуем понять, какое место уже сейчас занимают боты в нашей жизни. Конечно, первым делом стоит вспомнить ботов для криптовалюты и работы с ней, покупки авиа- и ж/д билетов. Так, можно найти много примеров с подобным  функционалом. Например, у государственной железнодорожной компании “Укрзалізниця” есть боты по продаже билетов в Telegram и Viber.

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

Кроме того, в эту нишу понемногу приходит и крупный бизнес. Многие компании организовывают работу своей технической поддержки через ботов и позволяют при этом делать кроссплатформенное взаимодействие. Это значит, что люди могут написать такому боту из разных мессенджеров, но при этом — иметь схожее или идентичное выполнение какого-либо запроса.

Стоит также упомянуть, что многие боты, которые сейчас можно найти в том же Telegram и которые имеют сравнительно большое количество пользователей, имеют дополнительный функционал, доступный за счет доната: как в форме подписки, так и единоразовым платежом. Такие боты зачастую коммерчески успешны, поскольку содержание сервера для работы бота стоит в разы меньше, чем сайта со схожей нагрузкой за счет распределения затребованных пользователем ресурсов, в том числе на сервера мессенджера.

Что делать с мыслью, что это баловство?

И все-таки, что делать, если для кого-то все это выглядит как бесполезная трата времени и ресурсов? Мой ответ простой: попробуйте решить какую-то рутинную задачу через ваш любимый мессенджер.

Всем понятно, что боты сейчас есть на любой вкус и тратить время на написание своего не всегда удобно и актуально. Однако в результате мы можем получить гораздо больше пользы и удовлетворения наших рутинных потребностей, чем потратим на него ресурсов (спойлер, если ваш любимый мессенджер — Telegram, то ваши усилия зачастую окажутся минимальны, а результаты — обворожительны).


Напоследок важно не забывать, что разработка бота — это точно такой же процесс, как и разработка приложения. Не забывайте все основные и «золотые» правила, которые изучили за время работы в вашей сфере и с любимым языком. На данный момент все самые популярные языки программирования имеют в арсенале библиотек с открытым исходным кодом уйму готовых решений и фреймворков для построения ботов практически для любой платформы. Python и JavaScript — фавориты в этом деле. В конечном счете, почитав документацию, вы сможете реализовать такую библиотеку самостоятельно, если популярной готовой найти не удалось, ведь основной способ взаимодействия между серверами мессенджера и вашим приложением — это все еще HTTP/Socket запросы.

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

Tags:
Hubs:
Total votes 11: ↑3 and ↓8-5
Comments32

Articles