From 84f3aa3953643fed2d762ece49425a792ced9054 Mon Sep 17 00:00:00 2001 From: Harry <164126595+wwyharry@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:24:36 +0800 Subject: [PATCH] Improve embedding API response handling Add error handling and validation for embedding API response. --- openspace/skill_engine/skill_ranker.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/openspace/skill_engine/skill_ranker.py b/openspace/skill_engine/skill_ranker.py index 503eda5..c0a409d 100644 --- a/openspace/skill_engine/skill_ranker.py +++ b/openspace/skill_engine/skill_ranker.py @@ -340,7 +340,17 @@ class SkillRanker: try: with urllib.request.urlopen(req, timeout=15) as resp: data = json.loads(resp.read().decode("utf-8")) - return data.get("data", [{}])[0].get("embedding") + + data_list = data.get("data") + if not data_list or not isinstance(data_list, list): + logger.warning(f"Invalid embedding API response: missing 'data' array") + return None + + embedding = data_list[0].get("embedding") + if not embedding: + logger.warning("Embedding API response missing 'embedding' field in first result") + return None + return embedding except Exception as e: last_err = e if attempt < 2: