Модерация крупных Telegram-чатов требует времени. Ручная модерация спама, мата и порнографического контента быстро превращается в однообразную и утомительную рутину. Для автоматизации таких процессов используют ботов-модераторов. Один из них — Samurai, open-source решение со встроенными нейросетями для фильтрации контента.
Если вы владелец сетки Telegram-чатов или крупного комьюнити, то такой бот существенно упростит модерацию.
В материале разберем возможности бота и расскажем, как его развернуть на сервере.
Возможности бота Samurai
Samurai написан на Python и использует ML-модели (машинное обучение) для анализа текстового и визуального контента.
Основной функционал:
- Анти-спам. Нейросеть (на базе DeBERTa) анализирует сообщения новых пользователей и автоматически блокирует спамеров.
- Анти-мат. Встроенный цензор выявляет и удаляет нецензурную лексику на русском и английском языках.
- NSFW-фильтр (18+). Бот проверяет аватарки пользователей с помощью ИИ (модель SigLIP). Если система обнаруживает порнографию или запрещенный контент, профиль помечается как NSFW.
- Система репутации. Участники чата могут повышать или понижать рейтинг друг друга за полезные ответы или токсичность.
- Система репортов. Пользователи могут пожаловаться на сообщение через команду !report, чтобы переслать его на проверку администраторам.
- Отложенные сообщения. Бот умеет отправлять анонсы по заранее заданному расписанию.
Требования к серверу
Для стабильной работы Samurai потребуются:
- Установленный Python версии 3.11 или выше.
- Токен бота (создается через @BotFather в Telegram).
- Минимум 800 МБ оперативной памяти (RAM) для загрузки ML-моделей и кэширования.
Пошаговая установка
Шаг 1. Скачивание и установка библиотек. Откройте терминал, скачайте папку с ботом и установите нужные для его работы модули: git clone https://github.com/Priler/samurai.git cd samurai pip install -r requirements.txt.
Шаг 2. Настройка окружения. Создайте файл с настройками, скопировав базовый шаблон: cp .env.example .env (команда для Mac/Linux) и copy .env.example .env (команда для Windows). Откройте появившийся файл .env в любом текстовом редакторе (хоть в «Блокноте») и заполните данные:
- BOT_TOKEN — токен вашего бота (берется у @BotFather в Telegram).
- BOT_OWNER — ваш личный Telegram ID (чтобы бот слушался вас как создателя).
- GROUPS_MAIN — ID чата, который нужно модерировать.
- GROUPS_REPORTS — ID служебного чата, куда будут приходить жалобы.
- GROUPS_LOGS — ID чата для технических логов бота.
- DB_URL — база данных (можно не трогать и оставить по умолчанию: sqlite:///./samurai.db).
Шаг 3. Инициализация базы данных. Перед самым первым запуском нужно создать пустую базу данных:
- Откройте файл db_init.py в текстовом редакторе.
- Найдите и удалите защитную строчку: exit(«COMMENT THIS LINE IN ORDER TO RE-INIT DATABASE TABLES»).
- Сохраните файл и введите в терминале: python db_init.py.
Важно! Этот скрипт затирает старые данные. Когда база создастся, верните удаленную строчку на место, чтобы случайно не обнулить бота в будущем.
Шаг 4. Запуск бота. Остается только запустить главный процесс: python bot.py.
Установка через Docker
Если вы используете систему контейнеров Docker, установка сводится к двум командам (для Windows замените $(pwd) на полный путь к папке): docker build -t samurai-bot . docker run -d —name samurai-bot -v $(pwd)/config.toml:/app/config.toml —env-file .env samurai-bot.






