Telegram userbot для автоматического анализа сообщений чата с помощью Perplexity AI. Бот собирает сообщения за указанный период, фильтрует шум и создает структурированные выжимки с выделением основных тем и аргументов участников. Результат сохраняется в красивом HTML файле и отправляется в вашу группу.
Достаточно отправить в чат сообщение
/sum 12h
Бот создаст выжимку чата, в котором была отправлена команда за последние 12 часов.
- 📊 Анализ по времени или количеству:
/sum 3h,/sum 2d,/sum 50 - 💾 Экспорт без AI:
/copy 12h— получение JSON файла для самостоятельного анализа в любом ИИ - 🎯 Умная фильтрация: автоматическое исключение шума и флуда
- 👥 Гибкая настройка: исключение/приоритизация пользователей по спискам
- 📄 HTML отчеты с темной темой: результаты в виде красиво оформленных HTML файлов
- 🌐 Опциональная публикация в Telegraph: можно переключиться на Telegraph вместо HTML
- 🌳 Оптимизация списка сообщений: Древовидная структура экспорта и оптимизация полей сообщений для экономии токенов
Telegram API:
- Перейдите на https://my.telegram.org/auth
- Войдите с вашим номером телефона
- Выберите "API development tools"
- Получите
api_idиapi_hash - Создайте группу для публикации выжимки. Узнайте ID с помощью бота @username_to_id_bot)
Perplexity API:
- Зайдите на https://www.perplexity.ai/settings/api
- Зарегистрируйте платёжную информацию и пополните баланс
- Сгенерируйте API ключ
git clone https://github.com/Hohlas/ChatSum.git
cd ChatSum
pip install -r requirements.txtПри первом запуске бот автоматически создаст файл private.txt из шаблона private.txt.example.
Откройте private.txt и заполните вашими реальными ключами:
TELEGRAM_API_ID=ваш_api_id
TELEGRAM_API_HASH=ваш_api_hash
TELEGRAM_PHONE=+79001234567
PERPLEXITY_API_KEY=ваш_perplexity_ключ
TELEGRAM_GROUP_ID=-1001234567890 # ID канала для публикации результатов (опционально)
💡 Совет: Если файл не создался автоматически, скопируйте
private.txt.exampleвprivate.txtи отредактируйте его.
python3 main.pyПри первом запуске Telegram попросит ввести код подтверждения.
Анализирует сообщения чата с помощью Perplexity AI и создает красивый HTML отчет с автоматической темной темой.
/sum # Последние 24 часа (по умолчанию)
/sum 12h # Последние 12 часов
/sum 2d # Последние 2 дня
/sum 3d 6h # Последние 3 дня и 6 часов
/sum 50 # Последние 50 сообщений
Результат:
- Статистика (количество тем, сообщений, токенов, стоимость)
- HTML файл с полным анализом (автоматическая темная тема)
- Информация о периоде анализа
💡 Совет: Для публикации в Telegraph вместо HTML, измените
USE_HTML_EXPORT=falseвMODEL_CONFIG.txt
Экспортирует сообщения в JSON для самостоятельного анализа с помощью любого ИИ.
/copy 12h # Экспорт за 12 часов
/copy 50 # Экспорт 50 сообщений
Результат:
- JSON файл с оптимизированной структурой
- Готов для копирования в ИИ
- Информация о периоде экспорта
/config # Показать текущую конфигурацию
/show_excluded # Список исключенных пользователей
/show_priority # Список приоритетных пользователей
/show_prompt # Показать промпт для AI
/show_model # Показать текущую модель AI
/add_excluded User # Добавить пользователя в исключенные
/remove_excluded User # Удалить из исключенных
/add_priority User # Добавить в приоритетные
/remove_priority User # Удалить из приоритетных
/set_model sonar-pro # Изменить модель AI
/reload_config # Перезагрузить конфигурацию из файлов
Бот использует 4 конфигурационных файла:
Список пользователей, сообщения которых исключаются из анализа.
# Исключенные пользователи (имена, отображаемые в чате, НЕ username)
SpamBot
Flooder
Список приоритетных пользователей, чьи сообщения выводятся первыми в анализе.
# Приоритетные пользователи
Expert1
Expert2
Промпт для Perplexity AI, определяющий формат анализа. Можно редактировать для изменения структуры выжимки.
Настройки модели AI и формата экспорта:
MODEL=sonar-pro
USE_REASONING=false
USE_HTML_EXPORT=true
Параметры:
- MODEL:
sonar,sonar-pro(рекомендуется) - USE_REASONING: экспериментальный режим reasoning
- USE_HTML_EXPORT:
true— создавать HTML файлы (по умолчанию)false— публиковать в Telegraph
Подробнее: CONFIG_MANAGEMENT.md
- Создайте файл
/etc/systemd/system/telegram-bot.service:
[Unit]
Description=Telegram Chat Analyzer Bot
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/path/to/ChatSum
ExecStart=/usr/bin/python3 /path/to/ChatSum/main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target- Активируйте сервис:
sudo systemctl daemon-reload
sudo systemctl enable telegram-bot
sudo systemctl start telegram-bot
sudo systemctl status telegram-bot# Запуск в фоне
./start_bot_background.sh
# Подключиться к боту
screen -r telegram-chat-analyzer
# Отключиться (Ctrl+A, затем D)
# Остановить
./stop_bot.shСоздается красиво оформленный HTML файл с:
- 🎨 Стили в духе Telegraph: читаемый шрифт, оптимальная ширина, приятные отступы
- 🌓 Автоматическая темная тема: определяется по настройкам системы
- 📱 Адаптивный дизайн: отлично выглядит на мобильных устройствах
- 💡 Заголовки тем (жирный шрифт)
- Краткое резюме (курсив)
- Ссылки на сообщения участников
- Информация о разработчике в конце
Преимущества HTML:
- ✅ Полностью автономный файл (нет внешних зависимостей)
- ✅ Не требует интернета для просмотра
- ✅ Темная тема для комфортного чтения
- ✅ Можно сохранить и открыть в любое время
При желании можно переключиться на публикацию в Telegraph:
- 🌐 Результат доступен по ссылке
- 📤 Легко поделиться
- ☁️ Хранится в облаке Telegraph
{
"metadata": {
"chat_id": "1675726024",
"period_start": "2025-11-19 17:55:17",
"chat_name": "ProChat",
"total_messages": 52,
"filtered_messages": 51
},
"messages": [
{
"id": 243613,
"s": "Insey",
"t": "Текст сообщения",
"r": [
{
"id": 243616,
"s": "Artem",
"t": "Ответ"
}
]
}
]
}Оптимизация: Короткие ключи (s=sender, t=text, r=replies) для экономии токенов.
- Безопасность:
- Файл
private.txtне должен попадать в git (уже в.gitignore) - Шаблон
private.txt.exampleбезопасно хранить в репозитории (не содержит реальных ключей) - При первом запуске бот автоматически создаст
private.txtиз шаблона - HTML файлы полностью автономны и не содержат трекеров
- Файл
- Сессия: Файл
*.sessionсодержит данные авторизации, также не в git - HTML отчеты: Сохраняются в папке
html_reports/(добавлена в.gitignore) - Лимиты API: Следите за использованием Perplexity API
- Таймауты: Для больших объемов (>200 сообщений) может потребоваться время
- Временные файлы: Файлы
analysis_*.jsonавтоматически удаляются после успешной публикации
Бот не запускается:
- При первом запуске файл
private.txtсоздается автоматически изprivate.txt.example - Проверьте правильность API ключей в
private.txt(замените значения-заглушки на реальные) - Убедитесь, что установлены все зависимости:
pip install -r requirements.txt
Ошибка аутентификации:
- Удалите файл
session_name.sessionи перезапустите бота - Проверьте правильность
TELEGRAM_API_ID,TELEGRAM_API_HASH,TELEGRAM_PHONE
Ошибка Perplexity API:
- Проверьте баланс на https://www.perplexity.ai/settings/api
- Убедитесь, что API ключ скопирован полностью (без пробелов)
Таймауты при анализе:
- Уменьшите период анализа (например,
/sum 6hвместо/sum 12h) - Используйте
/copyдля экспорта и анализируйте вручную
MIT License. Подробности в файле LICENSE.
💰 0x94f69c258cD251bcB77DBb6156DA13E32dCb8Ef4