feat(assistant): авто-здоровье провайдеров + ручная проверка (фича 4/6)

Новый модуль assistant-health.js (по образцу classroom-cleanup): каждые 15 мин
пингует каждого провайдера (pingLLM) → app_settings.assistant_health
{ id:{ok,at,error,ms,fails} }. Авто-понижение: если активный провайдер
не отвечает 2+ раза подряд, а есть здоровый рабочий запасной — автоматически
переключает assistant_active и пишет assistant_failover (баннер «health»).
schedule() из server.js (unref).

Админка: тумблер «Авто-проверка провайдеров», кнопка «Проверить сейчас»
(POST /admin/assistant/health → runHealth), цветной индикатор здоровья на
каждой карточке провайдера (зелёный/красный + время/ошибка в title).
keyless-шлюзы и провайдеры без ключа учтены.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-24 15:02:37 +03:00
parent 40c3152fe8
commit bc0ed1892f
6 changed files with 90 additions and 5 deletions
+1
View File
@@ -25,6 +25,7 @@ router.get('/assistant/models', ctrl.getProviderModels);
router.post('/assistant/scan', ctrl.scanModels);
router.post('/assistant/probe', ctrl.probeModel);
router.post('/assistant/models/apply', ctrl.applyModels);
router.post('/assistant/health', ctrl.runHealth);
router.get('/imggen', ctrl.getImggen);
router.put('/imggen', ctrl.saveImggen);
router.post('/imggen/test', ctrl.testImggen);