Бот для Telegram, который собирает обсуждения в чатах (с поддержкой топиков) и периодически делает саммари с помощью Google Gemini AI или OpenAI (выбор через .env). Бот анализирует сообщения, выделяет основные темы, собирает важные ссылки и публикует саммари с динамическим тегом и ссылкой на донат.
- 🤖 Умное определение главных тем обсуждения с помощью Gemini AI или OpenAI (выбор через .env)
- 📊 Сбор и анализ сообщений по топикам и в общих чатах
- ⏰ Настраиваемые периодические саммари
- 📍 Гибкая маршрутизация саммари в выбранный топик/чат
- 🔒 Административный контроль (все команды доступны только админам)
- 🔗 Автоматический сбор ссылок из обсуждений
- 📝 Форматирование саммари с эмодзи, количеством сообщений, ссылками и тегом #dailysummary
- 🛡️ Ограничение длины сообщения Telegram (4096 символов)
- 🟢 Docker и docker-compose для быстрого запуска
- Python 3.12+
- Redis для хранения сообщений
- Telegram Bot Token
- Google Gemini API Key и/или OpenAI API Key
Создайте файл .env на основе example.env:
# Telegram Bot Token
TELEGRAM_TOKEN=ваш_токен_бота
# Google Gemini API Key
GEMINI_API_KEY=ваш_ключ_gemini
# OpenAI API Key (если используется OpenAI)
OPENAI_API_KEY=ваш_ключ_openai
# Провайдер саммари: gemini или openai
SUMMARIZER_PROVIDER=gemini
# Модель для саммари (например, models/gemini-1.0-pro или gpt-4-turbo-preview)
SUMMARIZER_MODEL=models/gemini-1.0-pro
# Интервал саммари в минутах (по умолчанию 60)
SUMMARY_INTERVAL_MINUTES=60
# Ссылка для доната (опционально, если не указана — будет только тег)
DAILY_SUMMARY_LINK=https://www.buymeacoffee.com/your-link# Клонируйте репозиторий
git clone https://github.com/TrackLine/summary-bot.git
cd summary-bot
# Установите зависимости
pip install -r requirements.txtdocker run -d -p 6379:6379 redis:7Установите Redis через пакетный менеджер вашей системы.
python bot.pydocker-compose up --build
⚠️ Все команды доступны только администраторам чата
/start— Информация о боте и список команд/summary_now— Создать саммари немедленно/set_summary_topic— Выбрать топик для отправки саммари/set_interval— Установить интервал автоматического саммари (в минутах)/summary_on— Включить автоматическое саммари/summary_off— Выключить автоматическое саммари/select_topics— Выбрать топики для анализа через кнопки
- Бот автоматически определяет и группирует сообщения по топикам в форумах
- Использует Google Gemini AI или OpenAI для умного определения тем обсуждения
- Сохраняет сообщения в Redis с политикой хранения 3 дня
- Автоматически собирает все ссылки из обсуждений
- Поддерживает эмодзи для разных типов тем
- Показывает прогресс при генерации саммари
- Форматирует саммари с тегом #dailysummary (ссылка на донат добавляется только если указана)
- Соблюдает лимит Telegram на длину сообщения (4096 символов)
- Асинхронная обработка с использованием aiogram 3.x
- Интеграция с Google Gemini AI и OpenAI
- Redis для хранения сообщений и настроек
- Поддержка HTML форматирования в саммари
- Автоматическое экранирование специальных символов
- Docker/Docker Compose для быстрого деплоя
- Все команды управления доступны только администраторам
- Безопасное хранение токенов через переменные окружения
- Автоматическое экранирование HTML в сообщениях
Если вы хотите внести свой вклад в развитие бота:
- Форкните репозиторий
- Создайте ветку для своих изменений
- Внесите изменения и создайте pull request
MIT License