Многофункциональный тг бот с возможностью администрирования чатов. Часть 1 — Планирование и архитектура
Перешел к разработке Омнибота (название временное) — это многофункциональный тг бот с возможностью администрирования чатов. Бота можно будет использовать просто как ассистента в чате с памятью о диалоге, а так же как модератора с возможностью удаления пользователей, сообщений и др. административных задач.
Почему я решил реализовать этот проект
- Умная модерация вместо списков триггеров.
В некоторых чатах стоит правило "Не материться", проблема ботов для модерирования, которых я видел в том, что у них все это реализовывается через тригерные слова, если в сообщении есть эти тригерные слова, то выполняется такое-то действие. Админу нужно самостоятельно формировать список этих триггеров. С генеративной языковой моделью же можно будет просто написать промпт/запрос "Удаляй все сообщения с матами". - Приватность.
Давно хотел поставить себе в личные чаты какого-то умного бота, но не доверяю уже существующим аналогам, есть вероятность, что они могут сливать историю чатов, которую другие могут найти в спец. OSINT ботах. - Личный интерес.
Хочу поизучать работу агентных систем.
Планируемые функции
Память
Планирую реализовать несколько уровней памяти:
- Краткосрочная — последние N сообщений (Redis/Postgres).
- Долгосрочная — через RAG с использованием Qdrant (векторная база для сообщений).
- Возможно — отдельный механизм суммаризации.
Доп. тулы/возможности
- Поиск в интернете
- RAG-поиск по истории чата. Если ассистент сам захочет найти информацию в чате
- Генерация изображений
- Генерация голоса
- Анализ изображений
- Анализ голосовых сообщений
Архитектура
Основная логика будет вынесена в backend-ядро. Telegram-боты будут выступать клиентами этого ядра.
Это позволит создавать отдельных ботов под разных пользователей, кастомизировать никнеймы и аватары, централизованно обновлять логику.
Эмбеддинги будут получать либо через infinity на сервере, либо буду обращаться по апи к openrouter.
Тут подумал, если агенту дадут какую-то длительную задачу, то ее тоже надо будет отдавать в очередь celery.
Если вам интересен проект, то заходите на тг канал https://t.me/a1manz001, там буду делиться исходным кодом, прогрессом, мыслями.