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)
|
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)))
|
||||||
|
|||||||
Reference in New Issue
Block a user