Система поиска ивентов в телеграм каналах. Парсит сообщения, находит посты об ивентах с помощью ML и отправляет в телеграм чат.
# Установить RabbitMQ
https://www.rabbitmq.com/docs/download
# Создать пользователя RabbitMQ можно на http://localhost:15672 после установки rabbitmq-server (по умолчанию guest/guest)
# Установить зависимости
pip install -r requirements.txt
# Настройка
cp config_example.py config.py
# Заполнить config.py своими токенами(в config написано подробнее)
# Настроить 1 или несколько моделей(ниже)
# Запуск
python auth.py #для создания сесии телеграмма(запустить необходимо 1 раз)
python bot.py
python consumer.pyРекомендуемый вариант - OpenRouter API ключ
Скачать модели в папку models/ и разархивировать:
RuBERT: https://disk.yandex.ru/d/zxtWvgv8AyfEBQ →models/my_rubert_tiny2_fv/LogReg: https://disk.yandex.ru/d/s-mgrhRxyz-VcQ →models/logreg/
Для модели qwen установить Ollama:
sudo snap install ollama
ollama pull qwen3:8bДля модели llama - получить OpenRouter API ключ на https://openrouter.ai/
mkdir -p sessions
touch events.db
docker compose build
docker compose run --rm bot python auth.py
docker compose up -d/start- начальное сообщение/help- справка по командам/status- показать статус работы/stop- остановить мониторинг/prod- рабочий режим/channels- список отслеживаемых каналов/models- список доступных моделей/set_model- выбрать модель для работы/parse- ручной парсинг канала
Примеры:
/parse anti_malware 2024-01-01 2024-01-31 llama/set_model qwen
rubert- Finetune RuBERTlogreg- логистическая регрессияqwen- Qwen через Ollamallama- Llama через OpenRouter
Компоненты:
bot.py- телеграм ботparser.py- извлечение и классификация сообщенийconsumer.py- обработка событий из очереди RabbitMQmodels.py- ML моделиdatabase.py- SQLite бдrabbitmq.py- RabbitMQ