fix: event classifier unwraps single-element list from model output

Model sometimes returns [{...}] instead of {...}. Now unwraps
single-element lists before parsing the event fields.
This commit is contained in:
Celes Renata
2026-04-17 16:44:57 +00:00
parent 630837070a
commit f054e97b5b
+6
View File
@@ -293,6 +293,12 @@ def _parse_classification_response(
cleaned = _repair_json(cleaned) cleaned = _repair_json(cleaned)
data = json.loads(cleaned) data = json.loads(cleaned)
# Model sometimes wraps the object in a list — unwrap it
if isinstance(data, list) and len(data) == 1 and isinstance(data[0], dict):
data = data[0]
if not isinstance(data, dict):
raise ValueError(f"Expected a JSON object, got {type(data).__name__}")
confidence = data.get("confidence", 0.5) confidence = data.get("confidence", 0.5)
if isinstance(confidence, (int, float)): if isinstance(confidence, (int, float)):
confidence = max(0.0, min(1.0, float(confidence))) confidence = max(0.0, min(1.0, float(confidence)))