
Как я собрал OmniBot: Discord Activity, локальный ruBERT и модерация без чёрного ящика
6oT9lpa только что Как я собрал OmniBot: Discord Activity, локальный ruBERT и модерация без чёрного ящика Средний 11 мин 0 Python * PostgreSQL * Node.JS * Веб-разработка * Обзор Из песочницы Код и конфигурация актуальны...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
В сфере искусственного интеллекта произошло заметное событие. 6oT9lpa только что Как я собрал OmniBot: Discord Activity, локальный ruBERT и модерация без чёрного ящика Средний 11 мин 0 Python * PostgreSQL * Node. JS * Веб-разработка * Обзор Из песочницы Код и конфигурация актуальны на 10–11 июля 2026 года. Метрики ниже получены в последнем цикле обучения модели.
Когда я начал развивать Discord-сообщество, обычной команды /ban хватило совсем ненадолго. Роли настраивались в одном месте, приветствия — в другом, логи — в третьем, а за уведомления о стримах отвечал отдельный бот. В какой-то момент я поймал себя на том, что управляю уже не сообществом, а зоопарком чужих интеграций — с разными правами, разными панелями и разными представлениями о том, что делать при сбое.
Технические детали
Автоматическая модерация только усугубила ситуацию. Ошибка в welcome-сообщении неприятна, но терпима. Ошибка классификатора — это уже удалённое нормальное сообщение или заблокированный человек.
Подключить нейросеть к on_message и закрыть тему я себе позволить не мог: цена ошибки слишком высокая. Так появился OmniBot. Я разделил решение на две части: модульный Discord-бот с панелью внутри Discord Activity и отдельный локальный AI Moderator.
Первый отвечает за взаимодействие с Discord и реальные действия, второй — за анализ текста, правила, ruBERT, оценку риска и объяснимый план решения. В коде это два репозитория, в эксплуатации — один контур. Дальше — не витрина функций, а решения, за которые пришлось платить сложностью: зачем модель вынесена в отдельный сервис, почему наказание не доверено одному классификатору, как выбирался checkpoint и где человек сознательно оставлен последней инстанцией.
Отраслевые последствия
Сначала — общий контур управленияЯ выписал операции, которые постоянно повторялись на сервере:настроить роли, приветствия и каналывести ручную модерацию и хранить историю наказанийвыдавать роли через панелисоздавать временные голосовые комнатысмотреть логи и статистикупубликовать уведомления Twitch, YouTubeуправлять доступом администраторов к этим функциямразбирать поток сообщений, не отдавая его внешнему ИИ-сервисуДля серверной части я взял Python 3. 12, disnake, FastAPI и PostgreSQL, для панели — Vue 3. Команды никуда не делись, но главным интерфейсом стала Activity внутри Discord: администратору не нужно уходить во внешнюю панель, чтобы поменять приветствие, проверить логи или настроить AI Moderator.
В Activity добавлен отдельный RBAC. Синхронизированные Discord-роли сопоставляются с ролями creator, developer, moderator, administrator и разрешениями модулей. Запрет должен работать не только на уровне API — если у человека нет доступа, вкладка просто не появляется в интерфейсе.
Я не исхожу из того, что OmniBot автоматически «лучше» MEE6, Dyno или Carl-bot — эти продукты уже закрывают типовые задачи. MEE6 предлагает фильтры и автомодерацию, Dyno — модульный бот с веб-панелью, Carl-bot — reaction roles, automod, логи и команды. Встроенный Discord AutoMod блокирует ключевые слова и спам и выполняет настроенные действия.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





