Многофункциональный тг бот с возможностью администрирования чатов. Часть 1 — Планирование и архитектура

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

Почему я решил реализовать этот проект

  1. Умная модерация вместо списков триггеров.
    В некоторых чатах стоит правило "Не материться", проблема ботов для модерирования, которых я видел в том, что у них все это реализовывается через тригерные слова, если в сообщении есть эти тригерные слова, то выполняется такое-то действие. Админу нужно самостоятельно формировать список этих триггеров. С генеративной языковой моделью же можно будет просто написать промпт/запрос "Удаляй все сообщения с матами".
  2. Приватность.
    Давно хотел поставить себе в личные чаты какого-то умного бота, но не доверяю уже существующим аналогам, есть вероятность, что они могут сливать историю чатов, которую другие могут найти в спец. OSINT ботах.
  3. Личный интерес.
    Хочу поизучать работу агентных систем.

Планируемые функции

Память

Планирую реализовать несколько уровней памяти:

  • Краткосрочная — последние N сообщений (Redis/Postgres).
  • Долгосрочная — через RAG с использованием Qdrant (векторная база для сообщений).
  • Возможно — отдельный механизм суммаризации.

Доп. тулы/возможности

  • Поиск в интернете
  • RAG-поиск по истории чата. Если ассистент сам захочет найти информацию в чате
  • Генерация изображений
  • Генерация голоса
  • Анализ изображений
  • Анализ голосовых сообщений

Архитектура

диаграмма системы
диаграмма системы

Основная логика будет вынесена в backend-ядро. Telegram-боты будут выступать клиентами этого ядра.

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

Эмбеддинги будут получать либо через infinity на сервере, либо буду обращаться по апи к openrouter.

Тут подумал, если агенту дадут какую-то длительную задачу, то ее тоже надо будет отдавать в очередь celery.

Если вам интересен проект, то заходите на тг канал https://t.me/a1manz001, там буду делиться исходным кодом, прогрессом, мыслями.

Начать дискуссию