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

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

C
Crazyrouter Team
June 13, 2026
1 views中文Tutorial
Share:

用 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

Topics

Tutorial

Related Posts

Doubao Seed Code:字节跳动 AI 代码生成模型 - 完整 API 指南Tutorial

Doubao Seed Code:字节跳动 AI 代码生成模型 - 完整 API 指南

学习如何使用 Doubao Seed Code,这是一款由字节跳动推出的强大 AI 代码生成模型。完整的 API 教程,包含 Python、Node.js 示例以及价格对比。

Jan 26
WorkBuddy 如何配置自定义模型?从 models.json 到 PowerShell 自动化Tutorial

WorkBuddy 如何配置自定义模型?从 models.json 到 PowerShell 自动化

WorkBuddy 自定义模型配置教程:解释 models.json 字段、PowerShell 自动化、一键写入 Crazyrouter 接口和备份恢复。

Jun 5
Claude是什么?Anthropic AI助手完整指南Tutorial

Claude是什么?Anthropic AI助手完整指南

"全面介绍Anthropic Claude AI助手,包括Claude Opus 4.5、Sonnet 4.5、Haiku 4.5各版本对比,API使用教程,定价分析和Crazyrouter接入指南。"

Mar 15
/v1/chat/completions、/v1/responses、/v1/messages 有什么区别?端点选错为什么会导致模型不可用Tutorial

/v1/chat/completions、/v1/responses、/v1/messages 有什么区别?端点选错为什么会导致模型不可用

一篇面向开发者和用户的 API 端点选择指南,解释 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 三类端点的区别,避免因为端点错误导致模型不可用。

Jun 4
GPT代理模式完全指南:OpenAI Agent模式使用教程Tutorial

GPT代理模式完全指南:OpenAI Agent模式使用教程

详细介绍GPT代理模式(Agent Mode)的功能、使用方法和API接入教程,帮助开发者快速上手OpenAI最新的自主任务执行能力。

Feb 22
2026年最佳AI音乐生成器:Suno vs Udio vs Stable Audio 对比Tutorial

2026年最佳AI音乐生成器:Suno vs Udio vs Stable Audio 对比

选择合适的AI音乐生成器可能令人眼花缭乱。本指南对比了2026年可用的顶级AI音乐工具,包括 Suno AI、Udio 和 Stable Audio,并提供真实价格和API访问信息。

Jan 23