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:
@@ -293,6 +293,12 @@ def _parse_classification_response(
|
||||
cleaned = _repair_json(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)
|
||||
if isinstance(confidence, (int, float)):
|
||||
confidence = max(0.0, min(1.0, float(confidence)))
|
||||
|
||||
Reference in New Issue
Block a user