ifieryarrows commited on
Commit
3c99e06
·
verified ·
1 Parent(s): da9fe4b

Sync from GitHub (tests passed)

Browse files
Files changed (1) hide show
  1. 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
- raise ValueError("missing impact_score")
934
- if raw_confidence is None:
935
- raise ValueError("missing confidence")
936
- if raw_relevance is None:
937
- raise ValueError("missing relevance")
938
 
939
  impact_score = _clip(float(raw_impact), -1.0, 1.0)
940
- confidence = _clip(float(raw_confidence), 0.0, 1.0)
941
- relevance = _clip(float(raw_relevance), 0.0, 1.0)
 
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: