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.