Чат-боти — це більше, ніж ви думали, і ось чому

Habr Технічна тема Мова оригіналу: Російською

Погляд на чат-ботів як на повноцінні застосунки, а не лише прості вправи з програмування. Автор розглядає переваги готового інтерфейсу месенджера, обмеження та практичні й комерційні сценарії використання.

Translated by ChatGPT GPT-6.1 Sol

Відомості про першоджерело

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

Архівна публікація. Посади, показники й технічні інструкції наведено станом на дату першої публікації.

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

У своєму житті я найчастіше стикаюся з негативним або зневажливим ставленням до розробки ботів серед інженерів. Саме це стало причиною написання цієї статті. Звісно, можливо, особисто у вас такої думки не виникало, тоді готовий до аналізу й обговорення запропонованих тез. Якщо ж ви дотримуєтеся подібної позиції, буду радий почути вашу реакцію після прочитання.

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

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

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

Які особливості завдань, що їх розв’язує чат-бот?

З огляду на відповідь на питання, що таке чат-бот, ми можемо зробити висновок, що він може розв’язувати той самий спектр завдань, що й будь-який інший продукт. Звісно, з урахуванням деяких особливостей:

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

  • обмеженість інтерфейсу вибраним чат-застосунком;

  • залежність від працездатності зовнішнього продукту (це дуже актуально останнім часом);

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

Переваги вибору чат-бота для реалізації продукту

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

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

Звісно ж, найбільша користь готового інтерфейсу — це те, що в усіх, хто користується вашим застосунком, за правильної та логічної архітектури кінцевий результат виглядатиме однаково й максимально передбачувано. Невеликим плюсом можна вважати також можливість масштабування завдяки запуску нових ідентичних ботів, за належної архітектури — на одному сервері.

У чому складнощі створення чат-ботів?

Основна складність у створенні застосунку під месенджери — це конструювання зручного й функціонального інтерфейсу з огляду на те, які особливості є в нашому розпорядженні всередині месенджера. Відповідно, створюючи певні user-flow, ми маємо складнощі, з якими варто змиритися, а іноді, як у випадку зі Slack, — величезні можливості завдяки тим «блокам», які нам дозволено використовувати.

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

Чат-боти в реальному житті

Спробуймо зрозуміти, яке місце вже зараз займають боти в нашому житті. Звісно, насамперед варто згадати ботів для криптовалюти й роботи з нею, купівлі авіа- та залізничних квитків. Так, можна знайти багато прикладів із подібною функціональністю. Наприклад, у державної залізничної компанії «Укрзалізниця» є боти з продажу квитків у Telegram і Viber.

Великий сегмент ботів закриває завдання взаємодії всередині месенджера. Це як офіційні представництва й чати для спілкування з відомими людьми чи компаніями, так і додаткова функціональність для модерації різноманітних чатів та спільнот. Наступною в списку можна виділити групу, у якій ботів можна охарактеризувати як помічників у повсякденній діяльності користувачів. Це як боти для обліку фінансів, так і різного роду допоміжні інструменти для моніторингу й керування різними ресурсами, не виходячи з улюбленого месенджера.

Крім того, у цю нішу потроху приходить і великий бізнес. Багато компаній організовують роботу своєї технічної підтримки через ботів і водночас дають змогу здійснювати кросплатформну взаємодію. Це означає, що люди можуть написати такому боту з різних месенджерів, але при цьому — мати схоже або ідентичне виконання певного запиту.

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

Що робити з думкою, що це забавки?

І все-таки, що робити, якщо для когось усе це виглядає як марне витрачання часу й ресурсів? Моя відповідь проста: спробуйте розв’язати якесь рутинне завдання через ваш улюблений месенджер.

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


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

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