В статье автор описывает принципы работы универсального Telegram-бота для магазина розничной торговли.
Ключевые слова: бот, разработка бота, магазин, мессенджер.
В современном мире, где темп жизни становится все быстрее, а людям необходим всё больше успевать сделать за меньшее количество времени, где телефонная связь уступает по популярности текстовым перепискам в популярных мессенджерах и даже нет времени на установку новых приложений, чат-боты приобретают всю большую популярность среди пользователей. В настоящее время наиболее популярным мессенджером для общения среди русскоязычных пользователей является Telegram. Начиная с марта 2022 года, популярность Telegram постоянно растёт. Так в это период сервис Telegram в России обошел WhatsApp, тем самым став самым популярным мессенджером в стране [1]. А уже в марте 2023 года Telegram впервые опередил видео-хостинг YouTube по такому показателю, как ежедневная аудитория. Из-за большого притока аудитории мессенджер Telegram стал хорошей площадкой для выхода бизнеса в онлайн, также этому способствует политика разработчиков мессенджера, которые предлагают широкий спектр возможностей для создания удобных, функциональных инструментов для продвижения бизнеса, например: чат-боты [2].
Чат-бот — это программа, имитирующая диалог с живым человеком в различных мессенджерах, социальных сетях и на сайтах. Особенно развита тема ботов в мессенджере Telegram. Это обусловлено широкими возможностями, предоставляемыми при разработке бота: хорошая документация, большой спектр доступных функций, много доступных и лёгких в использовании библиотек.
Чат-бот имеет большое количество преимуществ по сравнению с работником кол-центра:
— Бот способен отвечать на запросы в любое время суток, в то время как человеку нужно время для отдыха и перерывов
— Бот, как правило, даёт правильный ответ на поставленный клиентом вопрос
— Бот не бывает в плохом настроении, в отличие от человека
— Бот не может забыть ответить на запрос клиента
Также бот имеет ряд преимуществ по сравнению с сайтом:
— Создание и содержание чат-бота обходится предприятию в разы дешевле, нежели создание и содержание сайта;
— Для использования чат-бота не нужно переходить по сторонним ссылкам, поэтому отсутствует возможность «заразить» компьютер вирусами.
Современный бизнес развивается быстрыми темпами, стараясь захватить все более обширный рынок сбыта. Этому активно способствует развитие современных технологий, например: чат-боты, позволяющие продавать товары в интернете, продвигать магазин в различных социальных сетях и мессенджерах.
Так как каждый бизнес имеет свою специфику и свои особенности, была поставлена задача разработки универсального бота, способного обеспечивать хотя бы минимальный функционал для любого предприятия, торгующего какой-либо продукцией.
Python — язык однопоточный, и любые команды в нем выполняются только после того, как завершилось выполнение предыдущей команды. Однако в случае с ботом программе необходимо отвечать на множество сообщений и делать это очень быстро. Можно, конечно, создавать огромное множество потоков выполнений, но такой вариант чаще всего неприемлем, и альтернативой выступает асинхронная реализация задачи [3].
Когда в потоке выполнения команды возникает какая-то пауза, например, работает функция и у нее при этом есть какое-то время ожидания, выделяется участок времени, который не занят решением алгоритма. Асинхронность в библиотеке Aiogram как раз позволяет заполнить эти промежутки, ускоряя работу бота и быстро отвечая на запросы от нескольких пользователей.
Рис. 1. Принцип выполнения асинхронного кода
Клиент-серверная архитектура является основной архитектурой, используемой для создания ботов в Telegram. Как можно понять из названия, эта архитектура состоит из двух компонентов: клиентской части и серверной части.
Клиентская часть представлена приложением Telegram, которое устанавливается на устройства пользователей. Клиентская часть позволяет пользователям общаться друг с другом, состоять в различных каналах, а также использовать ботов.
Серверная часть представляет собой сервер Telegram, на котором хранятся данные пользователей, каналов и ботов. Сервер Telegram обрабатывает запросы от клиентской части и отвечает на них.
Когда пользователь отправляет сообщение боту, клиент Telegram отправляет запрос на сервер Telegram. Сервер Telegram обрабатывает запрос и отправляет ответ обратно клиенту Telegram. Затем клиент Telegram отображает ответ пользователю.
При работе с ботами в Telegram важно понимать, что все запросы и ответы проходят через сервер Telegram. Это означает, что бот должен быть подключен к Интернету, чтобы работать. Кроме того, сервер Telegram может ограничивать количество запросов, которые могут быть отправлены ботом за определенный период времени.
В качестве основного языка для разработки бота был выбран интерпретируемый язык Python, для удобного администрирования базы данных — фреймворк Django, а для прописывания логики функционирования бота — библиотека Aiogram. Данная библиотека в отличие от других библиотек (Python-telegram-bot, Telepot) поддерживает асинхронную обработку запросов, что позволяет боту не приостанавливать работу с одним пользователем в тот момент, когда он отвечает на запрос другого пользователя.
С помощью указанных средств был реализован асинхронный чат-бот для магазина розничной торговли, имеющий функционал:
— возможность получения информации об актуальных скидках и акция в магазине (рисунок 2),
Рис. 2. Просмотр доступных акций
— возможность забронировать товар, находящийся в наличии в магазине,
— возможность просмотреть каталог товаров, а также оформить заказ на любой товар из него (рисунок 3),
Рис. 3. Просмотр информации о товаре
— возможность подписаться на новостную рассылку в боте и отписаться от нее,
— возможность получения информации о статусе заказа, сделанного в данном магазине или об отсутствии заказа с введенным номером (рисунок 4),
Рис. 4. Просмотр статуса заказа
— возможность получения информации о местонахождении, времени работы и контактного номера телефона магазина
— для администраторов Telegram-бота есть возможность прямо в диалоге с ботом создать рассылку по всем активным пользователям бота, а также обновить статусы подписки клиентов.
Панель администрирования, доступная администраторам бота имеет следующий вид (рисунок 5):
Рис. 5. Просмотр панели администрирования
Литература:
- Telegram в марте впервые обогнал WhatsApp по популярности в России. — Текст: электронный // Известия: [сайт]. — URL: https://iz.ru/1308028/2022–03–21/telegram-v-marte-vpervye-obognal-whatsapp-po-populiarnosti-v-rossii (дата обращения: 04.05.2023).
- Лытнева Анна Андреевна, Дубинина Анна Эмировна Telegram как новая площадка в средствах массовой коммуникации // Материалы Афанасьевских чтений. 2020. № 2 (31). URL: https://cyberleninka.ru/article/n/telegram-kak-novaya-ploschadka-v-sredstvah-massovoy-kommunikatsii (дата обращения: 04.05.2023).
- Сергей, Бондаренко Telegram API: наглядный разбор с примерами / Бондаренко Сергей. — Текст: электронный // highload: [сайт]. — URL: https://highload.today/telegram-api/ (дата обращения: 04.05.2023).