Ноософт
Интерфейс ТГ-бота Telegram-бот для создания аватарок сотрудниками банка
Ноософт
#Разработка сайтов под ключ#Фирменный стиль#Разработка чат-ботов и Mini Apps

Интерфейс ТГ-бота Telegram-бот для создания аватарок сотрудниками банка

20 
Ноософт Россия, Барнаул
Поделиться: 0 0 0
Интерфейс ТГ-бота Telegram-бот для создания аватарок сотрудниками банка
Сфера

Информационные технологии и интернет

Тип сайта

Порталы и сервисы

iOS, Android

Сдано

Февраль 2024

Задача

Сталкивались ли вы с тем, что уходите в долгожданный отпуск, а уведомления о задачах продолжаются сыпаться? И коллега с соседнего отдела просто не знал, что вы на законном отдыхе и просит все-таки сделать отчет. В такие моменты понимаешь, что отпуск испорчен. Однако, крупные корпорации стараются создать такие условия, чтобы сотрудники поняли: их отдых также важен, как и продуктивность. Но как оповестить всех, что кто-то отсутствует и именно этому человеку нельзя писать? Сообщения и уведомления - вариант на один раз, прочел и забыл. Фотография с датами отсутствия во всех рабочих профилях - вот решение. Она не будет спамить письмами на почту, но будет всегда на виду. Команда банка рассказала NooSoft о своем видении и требованиях. Одно из них - не создавать отдельное приложение. Всё должно быть быстро, удобно и без лишних действий для пользователя. Поэтому выбор пал на создание телеграмм-бота. На текущий момент это самый актуальный мессенджер с широкими возможностями для разработки, а сотрудники банка - его активные пользователи.

Решение


Логика

Было решено разделить функционал на два сервиса:

1 - Бот общения с пользователем.
2 - Генератор изображений.

Четкое разделение обязанностей между ботом и сервисом сборки фотографий предотвратило большое ожидание генерации изображений и "краш самого сервиса", поддерживало его активность для всех пользователей.

Методы обработки

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

Сервис генерации

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

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

Сбор статистики

В конечной стадии разработки мы добавили сбор статистики для анализа производительности бота. И произвели переход работы от механизма pulling (периодический опрос сервера на наличие новых сообщений) к использованию Webhooks.

Результат

Какая задача была поставлена перед NooSoft? Кейс телеграм бот

Команда банка рассказала NooSoft о своем видении и требованиях. Одно из них - не создавать отдельное приложение. Всё должно быть быстро, удобно и без лишних действий для пользователя. Поэтому выбор пал на создание телеграмм-бота. На текущий момент это самый актуальный мессенджер с широкими возможностями для разработки, а сотрудники банка - его активные пользователи.

В ходе переговоров были обозначены задачи, решаемые ботом:

  • Выбор или загрузка фона. Пользователь может выбрать любой фон для аватарки из предложенных вариантов или загрузить свой собственный. Это обеспечит создание уникального внешнего вида аватара.

  • Установка даты отпуска. Важной функцией бота должна быть возможность визуализации даты начала и окончания отпуска на аватаре. Что подчеркнет время отсутствия на рабочем месте непосредственно в профиле.

  • Добавление надписи. Сотрудник может добавить надпись на свой аватар, выбирая из предложенных вариантов. Это позволит внести неформальность и отразить индивидуальность пользователя.

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

Телеграмм-бот решение

Сначала логика - потом разработка

Команда NooSoft приступила к работе с описания логики работы бота.

Было решено разделить функционал на два сервиса:

  1. Бот общения с пользователем.

  2. Генератор изображений.

Четкое разделение обязанностей между ботом и сервисом сборки фотографий, предотвратило большое ожидание генерации изображений и "краш самого сервиса" и поддерживало его активность для всех пользователей.

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

По итогу была выстроена следующая логика:

Схема логики
  • Бот общается с пользователями и узнает параметры желаемой аватарки.

  • “Слушатель” вылавливает все присланные фото и отправляет их в очередь.

  • Генератор на основе сформированной очереди создает аватар и отправляет его обратно в бот.

Теперь можно и покодить!

После того, как был определен фронт работ, команда приступила к разработке. Клиент предоставил нам большой массив с примерами аватарок.

На их основе разработчики создали два метода по обработке изображений: предоставленных сервисом изображений и пользовательских изображений. В одном из них была описана логика, предотвращающая искажение изображений, метод определяет середину изображения и создаёт кроп.

Примеры фонов

Отдельными методами была создана генерация вокруг фона специальной рамки с добавлением надписи и даты отпуска. В них была описана логика, которая основывалась на преобразовании изображения в формат RGBA и наложения друг на друга всех частей аватарки. Исключением был текст "Дата отпуска", он рисовался в заданных координатах динамически. Если выбиралось пользовательское изображение, то подложкой для даты являлся градиент.

Автарка

Для эффективной коммуникации между ботом и "сборщиком фото" внедрили RabbitMQ – брокер сообщений, обеспечивающий асинхронное взаимодействие. Таким образом, входящие данные не теряются, даже если работа бота временно приостановлена. Сообщения сохраняются, а "сборщик фото" слушает очередь и начинает сборку, минимизируя время ожидания для пользователей.

Бот вылавливает данные с чата и отправляет их в очередь. В это время созданный слушатель в генераторе берет изображение с очереди, обрабатывает и отправляет в чат в виде "Фото" и "Документа" для меньшей потери качества.

RabbitMQ маршрутизирует сообщения по разным точкам назначения. По завершении генерации, сервис отправляет результат обратно в чат бота для конкретного пользователя.

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

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

Схема новой логики

В конечной стадии разработки команда добавила сбор статистики для анализа производительности бота. И произвела переход работы от механизма pulling (периодический опрос сервера на наличие новых сообщений) к использованию Webhooks.

Webhook - это метод, при котором сервер Телеграмма непосредственно отправляет новые данные боту по мере их поступления.

Использование Webhooks помогло дополнительно улучшить производительность и отзывчивость бота. Теперь он смог получать обновления мгновенно, когда они поступают, вместо того, чтобы регулярно проверять сервер на наличие новых данных.

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

Обратная связь от сотрудников

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

  • Снизился рабочий стресс.

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

  • Улучшилось общее настроение.

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

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

Вы тоже можете взять на заметку эту идею для себя или своей компании. Помните, что продуктивный сотрудник - это отдохнувший сотрудник!

До и после отпуска

Комментарий агентства

Сергей Кондратенко
Сергей Кондратенко

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

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

https://noosoft.ru/cases/telegram-bot-dlya-sozdaniya-avatarok

Стек технологий

  • Python Python Язык программирования
  • FastAPI FastAPI Фреймворк/библиотека
  • PostgreSQL PostgreSQL База данных
  • Docker Docker Среда разработки

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Ноософт с удовольствием обсудит вашу задачу

Оставить заявку