📚 首页 / 02-claude-models/labs / lab.md

模块 2 动手实验 — Claude 模型与消息

Lab 2.1–2.4 无需 API key;Lab 2.5 可选需 key。预计 60–90 分钟。

Lab 2.1 — 选型矩阵实战(必做,无 key)

任务:改造 examples/model_matrix.py:

  1. 把负载画像换成你(假想中的)项目:客服聊天(QPS 20、输入 3K、输出 400、缓存 60%)与法律合同分析(QPS 0.2、输入 80K、输出 4K、缓存 30%)。
  2. 分别找出满足 Start 档限流的最低成本模型。
  3. 回答:合同分析在哪个模型上会先撞 ITPM?为什么 Fable 5 的 ITPM 桶只有别家 1/4?

验收:能说出"限流桶比单价更早决定选型"的例子(提示:Fable 5 Start 档 500K ITPM / 100K OTPM,来源: https://platform.claude.com/docs/en/api/rate-limits(访问于 2026-08-30))。

Lab 2.2 — 消息结构改错(必做,纸面)

任务:下面请求有 5 处结构错误,逐一指出并改正(对照 https://platform.claude.com/docs/en/api/messages(访问于 2026-08-30)):

{
  "model": "claude-opus-5",
  "max_tokens": 1024,
  "messages": [
    {"role": "system", "content": "你是客服助手"},
    {"role": "user", "content": "查一下我的订单"},
    {"role": "assistant", "content": [{"type": "tool_use", "id": "toolu_1", "name": "get_order", "input": {"order_id": "A123"}}]},
    {"role": "user", "content": [
      {"type": "text", "text": "这是结果:"},
      {"type": "tool_result", "tool_use_id": "toolu_1", "content": "已发货"}
    ]}
  ]
}

提示(错误清单方向):system 的位置与角色、tool_result 排序、连续角色合并、图片简写、消息上限。 验收:能解释每处错误对应的官方行为(报错 / 被合并 / 引发空响应模式)。

Lab 2.3 — 图片与 PDF 的账(必做,纸面)

任务:给"发票审核系统"估算单次请求多模态成本:

验收:图 token 算得出(1200/28=42.86→43、1600/28=57.14→58,每张 ≈43×58=2,494),并知道超档位上限会自动缩放。

Lab 2.4 — stop_reason 决策树(必做,纸面)

任务:为下列每种 stop_reason 写一行应用层伪代码处理(if-elif 链):

end_turn / max_tokens / stop_sequence / tool_use / pause_turn / refusal / model_context_window_exceeded

要求:max_tokens 分支必须考虑"输出是 JSON 时不能拼接下游解析";refusal 分支必须考虑 fallback 模型(来源: https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons(访问于 2026-08-30))。

Lab 2.5 — 用 usage 字段校准预算(可选,需 key)

任务:同一 prompt 发两次(第二次相同前缀命中缓存),观察 usage 四个字段的变化:input_tokens 下降、cache_read_input_tokens 上升。记录:总输入是否恒定?output_tokens 含 thinking 吗?(对照模块 2 §4)

验收:亲手看到"input_tokens ≠ 总输入"。

完成检查表

📚 目录