debt(D2): 统一预测结果类型为 PredictResult,路由去 dict 分支
- PredictResult 扩展可选字段 mode/agent_outputs/agent_weights/prompt_tokens/completion_tokens - MultiPredictResult 变为 PredictResult 别名(保留 R4 守卫标记与 re-export) - baseline 改返回 PredictResult(修复 backtest 对 baseline AttributeError 的潜伏 bug) - 预测路由单一属性映射,删除全部 isinstance(result, dict) 分支 - _persist_baseline 属性化,baseline upsert 语义不变(prompt_version/token/latency 同前) - TDD: 5 新测试 + test_baseline.py 属性化;全量 257 passed
This commit is contained in:
+14
-14
@@ -81,18 +81,18 @@ async def test_predict_baseline_no_llm():
|
||||
|
||||
result = await predict_baseline(1)
|
||||
|
||||
assert result["provider"] == "baseline"
|
||||
assert result["model"] == "baseline"
|
||||
assert result["mode"] == "baseline"
|
||||
assert result["latency_ms"] == 0
|
||||
assert result["prompt_tokens"] == 0
|
||||
assert result["completion_tokens"] == 0
|
||||
assert result.provider == "baseline"
|
||||
assert result.model == "baseline"
|
||||
assert result.mode == "baseline"
|
||||
assert result.latency_ms == 0
|
||||
assert result.prompt_tokens == 0
|
||||
assert result.completion_tokens == 0
|
||||
# 2.4 → round = 2, 1.6 → round = 2 → 平局 X
|
||||
assert result["pred_home_goals"] == 2.0
|
||||
assert result["pred_away_goals"] == 2.0
|
||||
assert result["pred_1x2"] == "X"
|
||||
assert result["subjective_confidence"] == 0.5
|
||||
assert "非投注建议" in result["reasoning"]
|
||||
assert result.pred_home_goals == 2.0
|
||||
assert result.pred_away_goals == 2.0
|
||||
assert result.pred_1x2 == "X"
|
||||
assert result.subjective_confidence == 0.5
|
||||
assert "非投注建议" in result.reasoning
|
||||
# 确认未调用任何 LLM 相关模块
|
||||
assert "home_10" in captured and "away_20" in captured
|
||||
|
||||
@@ -125,6 +125,6 @@ async def test_predict_baseline_clamps_to_range():
|
||||
|
||||
result = await predict_baseline(2)
|
||||
|
||||
assert result["pred_home_goals"] == 10.0 # clamped
|
||||
assert result["pred_away_goals"] == 0.0 # clamped
|
||||
assert result["pred_1x2"] == "1" # 10:0 主胜
|
||||
assert result.pred_home_goals == 10.0 # clamped
|
||||
assert result.pred_away_goals == 0.0 # clamped
|
||||
assert result.pred_1x2 == "1" # 10:0 主胜
|
||||
|
||||
Reference in New Issue
Block a user