From 7501594895028bfd551f1962bc1b698f45ccabef Mon Sep 17 00:00:00 2001 From: Swatikantamishra8 Date: Mon, 27 Apr 2026 20:17:52 +0530 Subject: [PATCH 1/2] feat(api): extend /api/health with model load diagnostics --- src/climatevision/api/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/climatevision/api/main.py b/src/climatevision/api/main.py index 729b213..577d54d 100644 --- a/src/climatevision/api/main.py +++ b/src/climatevision/api/main.py @@ -10,7 +10,7 @@ """ from __future__ import annotations - + import json import logging import time From add8e461267de346cb1ce74c0c6840c5345e29f9 Mon Sep 17 00:00:00 2001 From: Swatikantamishra8 Date: Mon, 27 Apr 2026 20:21:13 +0530 Subject: [PATCH 2/2] feat(api): extend /api/health with model load diagnostics Closes #20 - Try to load each enabled model via _load_model() - Report loaded status, checkpoint path, and any errors - Return model_diagnostics dict in health response - Mark health as degraded if any model fails to load --- src/climatevision/api/main.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/climatevision/api/main.py b/src/climatevision/api/main.py index 577d54d..d687c6a 100644 --- a/src/climatevision/api/main.py +++ b/src/climatevision/api/main.py @@ -422,6 +422,19 @@ def health() -> dict[str, Any]: ) health_status = "ok" if not config_issues else "degraded" + model_diagnostics: dict[str, Any] = {} + from climatevision.inference.pipeline import _load_model, _find_best_checkpoint + for atype in enabled_types: + name = atype["name"] + mstatus: dict[str, Any] = {"loaded": False, "path": None, "error": None} + try: + _load_model(name) + mp = _find_best_checkpoint(name) + mstatus["loaded"] = True + mstatus["path"] = str(mp) if mp else None + except Exception as exc: + mstatus["error"] = str(exc) + model_diagnostics[name] = mstatus return { "status": health_status, @@ -429,6 +442,7 @@ def health() -> dict[str, Any]: "analysis_types": [t["name"] for t in enabled_types], "config_valid": len(config_issues) == 0, "config_issues": config_issues, + "model_diagnostics": model_diagnostics, } @app.get("/api/analysis-types")