Доброго времени суток, «Хабр»!

Думаю, есть такие люди, которые сталкивались со спамом в каких‑либо чатах популярного мессенджера Телеграм. Не так давно BotHub выпустил своего AI бота‑модератора, который станет отличным решением проблемы подобного рода. Именно в данной статье я детально разберу этот бот и вынесу своё авторитетное (или не очень) решение относительно него.

Присаживайтесь поудобнее, я начинаю свое повествование.


Техническая составляющая

Пожалуй, если сказано подробно, то буду соответственно рассматривать бота. Сразу окунёмся в техническую часть, а уж потом перейдём к возможностям и самому обзору.

Архитектура и стек — пожалуй, основа основ для ботов разного рода, поэтому в первую очередь перечислю их:

  • Python 3.13 — асинхронная архитектура;

  • FastAPI — отвечает за HTTP API и веб‑интерфейс;

  • Aiogram 3.22+ — API для Telegram‑ботов;

  • PostgreSQL 17 + Alembic — отвечают за миграцию, то есть контроль версий баз данных, позволяющие работать с таблицами;

  • Redis — кэш и сессии;

  • Nginx — распределяет нагрузку.

Согласитесь, уже какой‑то уровень обозначился, но сильно здесь задерживаться не будем, пойдём дальше — к ML и AI (намечается искусственный интеллект, который действительно присутствует в боте):

  • RUSpam — BERT для русского языка;

  • Bothub API — интеграция с LLM, контекстный анализ и настраиваемые системные промпты;

  • Scikit‑learn — библиотека машинного обучения на языке Python с открытым исходным кодом;

  • Transformers — класс моделей глубокого обучения, используемых в контексте искусственного интеллекта и машинного обучения.

Разумеется, говоря о мессенджерах и вообще обо всём, что связано с интернетом, стоит упомянуть простую, но важную вещь — защиту. Здесь она представлена тремя уровнями. Средства защиты включают: non‑root Docker‑пользователя, шифрование токенов, rate limiting. Кроме того, присутствует проверка на заблокированных пользователей и кэширование на один час.

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


Как начать пользоваться ботом?

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

Итак, шаг первый. Самое простое — перейти в самого бота (@bothub_community_bot). После перехода отправить заветную команду /start и получить ответное сообщение с кратким представлением и последующей инструкцией.

Второй шаг — добавить самого бота в нужный нам чат и выдать ему права администратора, следуя инструкции, отправленной вам ранее. Хотя я решил не мелочиться и выдал ему все возможные права.

Шаг третий.
После добавления бота в чат в личных сообщениях сразу придет уведомление о дальнейших действиях. До полноценного использования бота остаётся получить лишь API‑токен Bothub. Следуйте подсказкам. Бот платный: расходует внутреннюю валюту сайта, предназначенную для его работы через нейросеть. Это не так страшно, особенно учитывая, что регистрация возможна через специальную ссылку — она подарит вам 100 000 токенов для тестирования.

Если подробнее расписать подсказку, получится такая последовательность действий:

  1. Зарегистрироваться на официальном сайте.

  2. Попасть в главное окно работы с агрегатором.

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

  4. Добавить ключ и внести его в бота командой /bothub.

Успех. После ввода ключа вам станет доступна возможность выбрать модель, на которой и будет работать бот. На выбор их более ста... Допустим, для теста было принято решение остановиться на GPT-4.


Функционал бота и непосредственные тесты защиты от спама

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

Статистика

Первая кнопка в меню бота, позволяющая узнать статистику чата. Информация здесь представлена минимально, однако всё самое необходимое присутствует.

Итак, нам доступна следующая информация: дата добавления, статус защиты, порог спама, данные за последние 24 часа и отчет о производительности.

Не обращайте внимания на то, что строка с ID чата пуста. Просто на всякий случай скрыл её. У вас всё будет отображено корректно.

Включить/отключить защиту и уведомления

Думаю, из названия уже становится понятна функция основного меню, на которой мы ненадолго остановимся.

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

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

Системный промт

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

Раздел системного промта позволяет ее настроить. Хотя изначально уже имеется готовая задача по умолчанию

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

Забаненные пользователи

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

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

Бан/Мут

Единственная команда, работающая непосредственно в чате, а не через бота напрямую, — /ban. Легко догадаться, что она позволяет вручную заблокировать любого пользователя.

Мут не является отдельной командой, но представляет собой функционал системы. Ограничение на отправку сообщений накладывается автоматически после серии нарушений — трёх случаев спама достаточно для автоматического блокировки пользователя.

Тестирование 

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

Во время теста выяснилось, что бот различает два понятия: спам и флуд. Первый — именно за него и производится блокировка. Спам заключается в массовых рассылках типа «куплю‑продам», «перейди по этой ссылке». Второй термин относится к простым сообщениям, отправленным подряд. Блокировки за них не последует, лишь будет наложен временный мут человеку на 30 секунд, пока бот удалит лишние сообщения.


Итог

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

Спасибо за внимание!

Комментарии (0)