Перейти к содержанию

Telegram-бот исследований

python -m apps.study_bot

Читает ova_status.json (OVA) или study_status.json (script 07/08) и study_control.json. Каждый час публикует статус в канал, прикладывает PNG-инфографику и report.html.

Переменные (.env или окружение):

Переменная Смысл
TELEGRAM_BOT_TOKEN Токен бота
TELEGRAM_CHANNEL_ID Канал/чат
TELEGRAM_ADMIN_IDS Кто может pause/resume
CNN_NEAT_STUDY_DIR Каталог study (скрипт 12: runs/ablation/ova_gpu_ab)
BOT_HOURLY_ENABLED Hourly-пост (по умолчанию true)
BOT_HOURLY_IMAGES PNG в hourly и /dashboard (по умолчанию true)
BOT_NOTIFY_PHASE_DONE Алерт по завершению фазы
BOT_NOTIFY_ERRORS Алерт по ошибкам конфига
BOT_STALE_MINUTES Порог stale-алерта
BOT_POLL_INTERVAL_SEC Интервал event loop

Hourly-пост (OVA): текст статуса → графики обучения / completed-runs → хитмапы val/test как документы → report.html. Хитмапы уходят документом, чтобы Telegram не сжимал цифры в ячейках.

Снапшоты (apps/study_bot/snapshots.py) сохраняются в {study_dir}/bot_snapshots/*.png (heatmaps, training_live, completed_runs) — их же бот прикладывает к постам. Метки классов берутся из apps/study_bot/class_labels.py (CIFAR-10 или MNIST-цифры в зависимости от study).

Команды: /status, /dashboard (HTML + картинки), /top, /phase, /class, pause/resume.

Не публикуйте токен в репозиторий. Тем же study_control.json пользуется Studio.