From 9368f64a9bdc5cbbc3bedc592e999c67c45d9553 Mon Sep 17 00:00:00 2001 From: Antoine Piron Date: Mon, 12 Oct 2026 14:50:17 +0200 Subject: [PATCH] Parse GitHub Models catalog response defensively Co-Authored-By: Claude Sonnet 5.5 --- artifacts/flask-api/ai_agent.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/artifacts/flask-api/ai_agent.py b/artifacts/flask-api/ai_agent.py index 830a4e9..0defe41 100644 --- a/artifacts/flask-api/ai_agent.py +++ b/artifacts/flask-api/ai_agent.py @@ -84,7 +84,12 @@ def list_model_ids() -> list[str]: """Modèles accessibles avec la clé en place (GitHub Models : catalogue dédié, /models n'est pas OpenAI-compatible).""" client = get_client() if "models.github.ai" in str(client.base_url): - return sorted(m["id"] for m in client.get(GITHUB_CATALOG_URL, cast_to=object)) + raw = client.get(GITHUB_CATALOG_URL, cast_to=object) + if isinstance(raw, (str, bytes)): # content-type non-JSON : le SDK rend le texte brut + raw = json.loads(raw) + if isinstance(raw, dict): + raw = next((v for v in raw.values() if isinstance(v, list)), []) + return sorted(m["id"] if isinstance(m, dict) else str(m) for m in raw) return sorted(m.id for m in client.models.list().data) -- 2.39.5