Spaces:
Running
Running
Sync from GitHub (tests passed)
Browse files- app/ai_engine.py +14 -8
app/ai_engine.py
CHANGED
|
@@ -929,16 +929,18 @@ def _parse_llm_v2_items(
|
|
| 929 |
raw_reasoning = item.get("reasoning", "")
|
| 930 |
|
| 931 |
try:
|
|
|
|
| 932 |
if raw_impact is None:
|
| 933 |
-
|
| 934 |
-
|
| 935 |
-
|
| 936 |
-
|
| 937 |
-
|
| 938 |
|
| 939 |
impact_score = _clip(float(raw_impact), -1.0, 1.0)
|
| 940 |
-
confidence
|
| 941 |
-
|
|
|
|
| 942 |
except (TypeError, ValueError):
|
| 943 |
failed_ids.add(article_id)
|
| 944 |
continue
|
|
@@ -1081,7 +1083,11 @@ async def _score_subset_with_model_v2(
|
|
| 1081 |
)
|
| 1082 |
parse_fail_count += len(failed)
|
| 1083 |
return valid, failed, parse_fail_count
|
| 1084 |
-
except Exception:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1085 |
parse_fail_count += len(expected_ids)
|
| 1086 |
|
| 1087 |
try:
|
|
|
|
| 929 |
raw_reasoning = item.get("reasoning", "")
|
| 930 |
|
| 931 |
try:
|
| 932 |
+
# impact_score is required; try label-based inference if missing
|
| 933 |
if raw_impact is None:
|
| 934 |
+
if raw_label and str(raw_label).upper().strip() in LLM_LABELS:
|
| 935 |
+
lbl = str(raw_label).upper().strip()
|
| 936 |
+
raw_impact = {"BULLISH": 0.3, "BEARISH": -0.3, "NEUTRAL": 0.0}.get(lbl, 0.0)
|
| 937 |
+
else:
|
| 938 |
+
raise ValueError("missing impact_score")
|
| 939 |
|
| 940 |
impact_score = _clip(float(raw_impact), -1.0, 1.0)
|
| 941 |
+
# confidence and relevance: default to 0.5 if missing
|
| 942 |
+
confidence = _clip(float(raw_confidence), 0.0, 1.0) if raw_confidence is not None else 0.5
|
| 943 |
+
relevance = _clip(float(raw_relevance), 0.0, 1.0) if raw_relevance is not None else 0.5
|
| 944 |
except (TypeError, ValueError):
|
| 945 |
failed_ids.add(article_id)
|
| 946 |
continue
|
|
|
|
| 1083 |
)
|
| 1084 |
parse_fail_count += len(failed)
|
| 1085 |
return valid, failed, parse_fail_count
|
| 1086 |
+
except Exception as exc:
|
| 1087 |
+
logger.warning(
|
| 1088 |
+
"V2 JSON parse failed for model=%s: %s | response_preview=%.500s",
|
| 1089 |
+
model_name, exc, content,
|
| 1090 |
+
)
|
| 1091 |
parse_fail_count += len(expected_ids)
|
| 1092 |
|
| 1093 |
try:
|