Login
Back to Blog
中文Tutorial

用 Claude Code 和 claude-fable-5 搭建世界杯赔率波动监控器

Claude Code 项目系列第二篇:用 Python 计算赔率隐含概率变化,通过 Crazyrouter 调用 claude-fable-5 生成结构化 JSON 分析,并强调这只是工程监控 Demo,不是投注技巧。

C
Crazyrouter Team
June 13, 2026 / 98 views
Share:
用 Claude Code 和 claude-fable-5 搭建世界杯赔率波动监控器

用 Claude Code 和 claude-fable-5 搭建世界杯赔率波动监控器#

上一篇 Claude Code 项目里,我做了一个 2026 世界杯比赛预测 Demo:Python 负责 Elo / Poisson 概率计算,Crazyrouter 负责多模型解释和结构化输出。

这一篇继续沿着同一个系列,但换一个更工程化的场景:

能不能让 Claude Code 搭一个赔率波动监控器,然后通过 Crazyrouter 调用 claude-fable-5,把异常波动总结成可校验的 JSON?

先说清楚:这不是投注技巧,也不是投注建议。本文只讨论工程实现:数据如何计算、报警如何生成、模型如何解释、JSON 如何校验。

本次实测 API:

text
Base URL: https://cn.crazyrouter.com/v1
Model: claude-fable-5
Task: summarize odds movement alerts as valid JSON

为什么赔率波动适合做 Claude Code 项目?#

赔率波动看起来像体育话题,但从工程角度看,它本质上是一个时间序列监控问题。

你会遇到这些典型环节:

  • 输入数据;
  • opening odds 和 latest odds;
  • 派生指标;
  • 阈值判断;
  • 异常报警;
  • 人类可读总结;
  • 合规边界和免责声明。

这比“让 AI 猜谁赢”更适合测试 AI Coding Agent。

正确的任务不是:

AI,告诉我该买谁。

而是:

Claude Code,帮我搭一个监控系统:计算隐含概率变化,发现异常波动,调用模型生成分析,但不要给投注建议。

这就是本文的核心。


项目架构#

Demo 流程很小,但完整:

text
sample odds CSV
  ↓
Python parser
  ↓
decimal odds → implied probability
  ↓
movement calculation
  ↓
alert threshold
  ↓
claude-fable-5 analysis through Crazyrouter
  ↓
JSON validation
  ↓
article/chart assets

生成目录:

text
generated/claude_code_odds_monitor_fable_20260613/
├── build_odds_monitor.py
├── sample_odds_movements.csv
├── odds_monitor_output.json
├── odds_movement_chart.svg
├── crazyrouter_raw_claude-fable-5.json
├── claude_fable_5_test_result.json
└── claude_fable_5_final_test_result.json

一句话总结:

text
Python 负责发现波动。
claude-fable-5 负责解释报警。
JSON validator 判断输出是否可用。

示例数据#

为了让 Demo 可复现,我没有接真实付费赔率 API,而是用了合成样例数据。

CSV 大概长这样:

csv
match,market,opening_decimal,latest_decimal,timestamp
USA vs Paraguay,USA win,2.20,2.08,2026-06-12T08:00:00Z
USA vs Paraguay,Draw,3.55,3.65,2026-06-12T08:00:00Z
USA vs Paraguay,Paraguay win,3.10,3.25,2026-06-12T08:00:00Z
Brazil vs Morocco,Brazil win,1.78,1.72,2026-06-13T08:00:00Z
Qatar vs Canada,Canada win,2.08,1.92,2026-06-13T08:00:00Z
Germany vs Curaçao,Germany win,1.20,1.16,2026-06-14T08:00:00Z

生产环境里,这部分应该换成真实数据源,比如多家 bookmaker、时间戳快照、盘口快照、阵容和伤病新闻等。


从赔率计算隐含概率#

decimal odds 转隐含概率非常简单:

python
def implied_prob(decimal_odds):
    return 1.0 / decimal_odds

然后比较 opening 和 latest:

python
open_p = implied_prob(opening)
latest_p = implied_prob(latest)
delta_pp = (latest_p - open_p) * 100

当变化超过阈值,比如 2.5 个百分点,就生成 alert:

python
if abs(delta_pp) >= 2.5:
    alerts.append({
        "match": match,
        "market": market,
        "direction": movement_direction,
        "delta_pp": round(delta_pp, 2),
        "note": "Large implied-probability movement; review news, lineup, liquidity, and data quality."
    })

注意这里的重点:报警不是 LLM 猜出来的,而是确定性代码算出来的。

LLM 只负责解释,不负责替代计算。


示例报警结果#

脚本一共生成了 4 个显著波动:

json
[
  {
    "match": "USA vs Paraguay",
    "market": "USA win",
    "direction": "shortened",
    "delta_pp": 2.62
  },
  {
    "match": "Qatar vs Canada",
    "market": "Qatar win",
    "direction": "drifted",
    "delta_pp": -3.18
  },
  {
    "match": "Qatar vs Canada",
    "market": "Canada win",
    "direction": "shortened",
    "delta_pp": 4.01
  },
  {
    "match": "Germany vs Curaçao",
    "market": "Germany win",
    "direction": "shortened",
    "delta_pp": 2.87
  }
]

其中最大变化是 Qatar vs Canada 里 Canada win 的隐含概率上升了 4.01 个百分点。

这不代表“应该下注 Canada”。

它只代表:这个市场出现了足够大的变化,系统应该记录下来,并进一步检查阵容、伤病、流动性或数据质量。

World Cup odds movement monitor sample chart


通过 Crazyrouter 调用 claude-fable-5#

接下来,把 alerts 交给 claude-fable-5 做结构化解释。

调用方式依然是 OpenAI-compatible:

python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_CRAZYROUTER_API_KEY",
    base_url="https://cn.crazyrouter.com/v1",
)

请求里使用:

json
{
  "model": "claude-fable-5",
  "messages": [
    {
      "role": "user",
      "content": "Return raw JSON only. Analyze these odds movement alerts for an engineering demo..."
    }
  ],
  "max_tokens": 1200
}

Prompt 明确要求:

text
No betting advice.
Output raw JSON only.

claude-fable-5 实测结果#

最终成功结果:

ModelHTTPLatencyPrompt tokensCompletion tokensTotal tokensValid JSON
claude-fable-520012.14s8335991432True

模型返回了可解析 JSON,核心内容包括:

json
{
  "summary": "4 significant odds movements detected across 3 matches...",
  "alerts_count": 4,
  "top_movement": {
    "match": "Qatar vs Canada",
    "market": "Canada win",
    "direction": "shortened",
    "delta_pp": 4.01
  },
  "checks": [
    "Verify lineup announcements and injury news",
    "Confirm market liquidity",
    "Validate data feed integrity",
    "Cross-check movements across bookmakers"
  ],
  "recommendations": [
    "Treat paired Qatar vs Canada movements as one correlated event",
    "Add automated correlation detection",
    "Log raw odds snapshots for audit"
  ],
  "disclaimer": "This analysis is for engineering and data-quality demonstration purposes only. It does not constitute betting advice."
}

这类输出适合进入 dashboard、报警系统、日报生成器,而不是直接发成“推荐”。


一个真实踩坑:payload shape 很重要#

测试时有一个值得记录的问题。

第一次调用 claude-fable-5 返回:

text
HTTP 400
Invalid request

模型名没有错,/v1/models 里能看到 claude-fable-5

问题出在 payload 兼容性。换成更简洁的请求结构后就成功了。

我还测试过较长的 JSON 输出任务:HTTP 200 了,但模型有时会包一层 Markdown code fence,或者接近输出上限。

最后可用模式是:

  • 使用 model: claude-fable-5
  • 输入尽量紧凑;
  • 使用 max_tokens
  • 明确要求 raw JSON;
  • 无论如何都做 JSON validation。

这说明模型质量不只是“聪不聪明”。

工程里还要看:

  • payload 兼容性;
  • schema adherence;
  • 输出长度行为;
  • latency;
  • retry / fallback;
  • cost per accepted output。

为什么适合用 Crazyrouter?#

赔率监控器有很多模型相关任务:

  1. 总结大幅波动;
  2. 生成数据质量检查清单;
  3. 解释同一场比赛内的相关波动;
  4. 输出 analyst-friendly report;
  5. 避免生成投注建议。

不同模型在这些任务上的稳定性会不一样。

用 Crazyrouter 的好处是:

text
一个 API Key
一个 OpenAI-compatible Base URL
多个模型路由
统一 validation 层

后面想比较 claude-fable-5、GPT、Gemini、Qwen,只需要换 model 字段,不用重写应用。


Claude Code 真正应该做什么?#

这类项目里,Claude Code 的价值不是“帮你猜球”。

它应该帮你搭完整工程:

  1. sample_odds_movements.csv:可复现输入;
  2. odds_monitor_output.json:确定性报警输出;
  3. odds_movement_chart.svg:可视化;
  4. crazyrouter_raw_claude-fable-5.json:原始 API 审计;
  5. claude_fable_5_final_test_result.json:校验证据;
  6. 可发布文章。

也就是说,AI Coding Agent 更像项目执行器,而不是答案机器。


局限性#

这个 Demo 使用的是合成样例数据。

生产版本还需要:

  • 真实 odds API;
  • 多 bookmaker 数据;
  • overround normalization;
  • liquidity estimate;
  • timestamp alignment;
  • 阵容和伤病新闻;
  • alert deduplication;
  • 历史校准;
  • 合规审查。

所以本文只讨论监控系统,不讨论投注策略。


后续升级方向#

下一版可以加入:

  1. 定时抓取 odds snapshot;
  2. 多数据源对比;
  3. 去水后的 implied probability;
  4. 同一场比赛内的相关波动检测;
  5. 新闻 / 阵容联动;
  6. claude-fable-5、GPT、Gemini、Qwen 的多模型对比;
  7. cost per valid JSON report;
  8. 小型 Web dashboard。

更重要的指标不是单纯 token 成本,而是:

text
cost per valid alert report

这包含失败请求、重试、坏 JSON、人工 debug 时间。


总结#

Claude Code 可以搭一个赔率波动监控器,但前提是任务边界要正确。

合理架构是:

text
Python 计算 implied probability movement。
Claude Code 搭 pipeline 和 artifacts。
claude-fable-5 通过 Crazyrouter 总结 alerts。
JSON validator 判断输出是否可用。

这篇是 Claude Code 项目系列第二篇:从“比赛预测”进入“监控系统”。

这种模式不只适合体育数据,也适合金融监控、API 可观测性、运营报警、客服分类等场景。

如果你想通过一个 OpenAI-compatible API 测试 claude-fable-5 或其他模型,可以试试 Crazyrouter:

https://crazyrouter.com?utm_source=crazyrouter_blog&utm_medium=article&utm_campaign=claude_code_odds_monitor_fable

Implementation Guides

Related Posts

AI API 成本管控实战:团队如何统一管理 Claude、GPT、DeepSeek 的消费Tutorial

AI API 成本管控实战:团队如何统一管理 Claude、GPT、DeepSeek 的消费

团队使用多个 AI 模型时,成本容易失控。本文分享实际的成本管控方法:智能路由、用量监控、消费明细导出,帮助技术负责人把 AI API 支出控制在预算内。

Apr 16
Grok4 免费使用教程 2026:免费额度、API 接入与平替方案Tutorial

Grok4 免费使用教程 2026:免费额度、API 接入与平替方案

Grok4 免费使用完整教程,涵盖 xAI 免费额度详解、API 接入方法、平替方案对比,以及通过 Crazyrouter 低成本使用 Grok4 的实操指南。

Apr 29
WorkBuddy 接入 claude-opus-4-8 与 gpt-5.5:用 Crazyrouter 一键配置自定义模型Tutorial

WorkBuddy 接入 claude-opus-4-8 与 gpt-5.5:用 Crazyrouter 一键配置自定义模型

这篇中文指南从 models.json、PowerShell 一键配置、模型选择、Token 权限、成本控制、稳定性和排错等维度,讲解如何在 WorkBuddy 中接入 claude-opus-4-8、gpt-5.5 等 Crazyrouter 自定义模型。

Jun 15
GPT-5.2 完整指南:OpenAI 最新旗舰模型 API 使用教程 2026Tutorial

GPT-5.2 完整指南:OpenAI 最新旗舰模型 API 使用教程 2026

全面介绍 GPT-5.2 的能力、API 接入方法、与 Claude Opus 4.6/Gemini 3 Pro 对比、定价分析,以及通过 Crazyrouter 低价使用的完整教程。

Apr 15
Claude Opus 4.7 vs Opus 4.6 实测对比:7 项测试跑完后,我发现升级最值的是 coding 和 debugTutorial

Claude Opus 4.7 vs Opus 4.6 实测对比:7 项测试跑完后,我发现升级最值的是 coding 和 debug

通过 Crazyrouter 对 Claude Opus 4.7 与 Opus 4.6 做 7 项真实场景对比,发现 coding、debug、数学推理和创作提升最明显。

Apr 16
ChatGPT 6 什么时候发布?最新进展、预计时间和现在可用的替代方案Tutorial

ChatGPT 6 什么时候发布?最新进展、预计时间和现在可用的替代方案

整理 ChatGPT 6 最新消息、预计发布时间、OpenAI 可能路线图,以及开发者现在就能使用的 GPT、Claude、Gemini 替代方案。

Mar 27