完善评估能力:筛选参数 + degraded 排除 + 前端评估页
后端: - settle_prediction 拒绝 degraded/failed(明确错误信息) - get_eval_summary 支持 provider/model/prompt_version/mode 筛选 - 返回 filtered_settled/evaluated/skipped_degraded 等计数 - matches 游标分页方向修复(scheduled ASC 用 > 条件) - available_at 加 2h 缓冲(近似完赛时间) - bzzziro 统计字段映射注释(待真实响应验证) - injuries 区分 no_local_data 与 success 空名单 前端: - 新增 EvalPage(筛选控件 + 汇总卡片 + 准确率表格) - 挂载 /admin/eval 路由与导航 测试: - test_matches_cursor.py:游标方向 - test_available_at.py:2h 缓冲与回测防泄漏 - test_bzzoirot_stats.py:统计字段映射 - test_injuries_no_local_data.py:no_local_data vs success - test_injuries_inserted_count.py:失败批不计入 - test_eval_excludes_degraded.py:degraded 排除准确率
This commit is contained in:
+17
-1
@@ -145,7 +145,23 @@ def _to_float(v) -> float | None:
|
||||
|
||||
|
||||
def normalize_bzzoiro(raw: dict, league_type: str) -> NormalizedMatch | None:
|
||||
"""bzzoiro event → NormalizedMatch。"""
|
||||
"""bzzoiro event → NormalizedMatch。
|
||||
|
||||
统计字段映射说明:
|
||||
当前字段名基于常见足球 API 模式推测(home_shots/away_shots 等),
|
||||
未经真实 bzzoiro 响应校验。若真实字段不同,映射结果将为 None。
|
||||
|
||||
⚠️ 待用真实响应核对的字段清单(请提供一份 event 样例验证):
|
||||
- 射门: home_shots / away_shots(或 shots_home / shots_away)
|
||||
- 射正: home_shots_on_target / away_shots_on_target(或 sot_home / sot_away)
|
||||
- 角球: home_corners / away_corners(或 corners_home / corners_away)
|
||||
- 控球: home_possession(或 possession,仅主队值)
|
||||
- xG: home_xg / away_xg(或 xg_home / xg_away / expected_goals_home / expected_goals_away)
|
||||
- 黄牌: home_yellow_cards / away_yellow_cards(或 yellow_cards_home / yellow_cards_away)
|
||||
- 红牌: home_red_cards / away_red_cards(或 red_cards_home / red_cards_away)
|
||||
|
||||
映射策略:优先查主字段名,回退到别名。所有字段缺失时保持 None,不伪造。
|
||||
"""
|
||||
from src.data.team_names import normalize as normalize_name
|
||||
|
||||
date = _parse_date(raw.get("event_date"))
|
||||
|
||||
Reference in New Issue
Block a user