Claude 模型三件套
Anthropic 的命名规则是「代次 + 层级」,例如 claude-opus-4-5:
- Opus — 旗舰款,最强推理,最贵,Extended Thinking 原生支持
- Sonnet — 中端,性能/价格最优,多数生产场景首选
- Haiku — 轻量极速,便宜且低延迟,适合高频实时
模型 ID 是 API 参数里的关键字段。发布新版本时旧 ID 依然可用——你锁死在某版本也没问题。
选型决策表
| 场景 | 推荐 | 理由 |
|---|---|---|
| 复杂推理 / 代码生成 / Agent 主脑 | Opus 4.x | 推理深度、长任务规划 |
| 日常 chatbot / RAG 问答 / 工具调用 | Sonnet 4.x | 质量足够 + 价格合理 |
| 实时翻译 / 简单分类 / 高并发 | Haiku 4.x | 首 token 延迟低、单价极低 |
| 批量文档处理 | Haiku + Batch API | 单价再砍 50% |
| 端侧推理 / 离线 | 不适合 Claude | Claude 只有 API,无本地权重 |
工程化思路
生产系统里多模型混用是标配——
生产系统里多模型混用是标配——
Haiku 过滤器做 intent classification,分发到 Sonnet 处理主要逻辑,遇到特别复杂的 case 才上 Opus。每层选最便宜的"刚好够用",月账单能砍到 1/3。
注册与 API Key
- 打开 console.anthropic.com 注册账号
- 左侧菜单 API Keys → Create Key
- 保存
sk-ant-api03-...开头的 Key —— 只显示一次,别丢 - 充值(最小 $5)进入 Build tier 1,每日有请求限额
Key 安全
API Key 绝不能出现在前端代码或 Git 仓库。最好做法:服务器端
API Key 绝不能出现在前端代码或 Git 仓库。最好做法:服务器端
.env → 反向代理调 Anthropic;前端只跟自己服务器通信。泄露一次,跑满限额再收大额账单是真事。
SDK 安装
Anthropic 官方 SDK 支持 Python、Node.js/TypeScript、Java、Go(beta)等。最活跃的是前两个。
# Node.js / TypeScript npm install @anthropic-ai/sdk # Python pip install anthropic # 或用 uv uv add anthropic
第一次调用:Node.js
import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic(); // 自动读 ANTHROPIC_API_KEY const msg = await client.messages.create({ model: "claude-sonnet-4-6", max_tokens: 1024, messages: [ { role: "user", content: "写一首五言绝句歌颂 TypeScript。" }, ], }); console.log(msg.content[0].text); // 输出: // 类型如骨架, // 代码成玉器。 // IDE 知我心, // bug 未生即。
第一次调用:Python
import anthropic client = anthropic.Anthropic() # 读 ANTHROPIC_API_KEY 环境变量 msg = client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[ {"role": "user", "content": "用 bash 写一行查找最近修改的 10 个 Python 文件。"}, ], ) print(msg.content[0].text) # find . -name "*.py" -printf "%T@ %p\n" | sort -rn | head -10 | cut -d' ' -f2-
Messages API 的核心结构
所有 Claude 调用都收敛到 一个端点: POST /v1/messages。参数有:
model
要调用的模型 ID,例:
claude-opus-4-7、claude-sonnet-4-6、claude-haiku-4-5max_tokens
这次响应最多生成的 token 数 —— 必填。别忘了,默认没值
messages
对话列表,role 只能是
user 或 assistant,必须以 user 开头、交替出现system
系统指令(可选)。不是放在 messages 里,而是顶层单独字段
temperature
0–1,默认 1。0 → 更确定,1 → 更有发散性
tools / tool_choice
工具调用相关(第 4 章详讲)
stream
true 时切到 SSE 流式(第 3 章详讲)
返回结构
{
"id": "msg_01ABc...",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{ "type": "text", "text": "五言绝句如下..." }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 23,
"output_tokens": 64,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
}
content 是数组——未来可能同时含 text / tool_use / thinking 多种 block,永远别假设只有一条 text。
stop_reason 可能是:
end_turn—— 正常结束max_tokens—— 达到上限被截断stop_sequence—— 命中自定义停止词tool_use—— 模型决定调工具(第 4 章)
计费基础
Claude 按 token 计价,input/output 价格不同:
| 模型 | Input ($/MTok) | Output ($/MTok) | 适用 |
|---|---|---|---|
| Claude Opus 4.x | 15 | 75 | 最贵,旗舰 |
| Claude Sonnet 4.x | 3 | 15 | 性价比之王 |
| Claude Haiku 4.x | 0.80 ~ 1 | 4 ~ 5 | 轻量高频 |
"MTok" = 一百万 token。粗略说:1 token ≈ 0.75 英文单词 ≈ 0.5~1 个中文字。价格随版本迭代会调整,以官方页为准。
省钱三件套
· Prompt Caching(第 6 章)—— 缓存命中 input 只要原价 10%
· Batch API(第 8 章)—— 整体 50% 折扣,适合离线任务
· 模型分层 —— Haiku 过滤 → Sonnet 主力 → Opus 攻坚
三者叠加,生产月账单能再砍 70%。
· Prompt Caching(第 6 章)—— 缓存命中 input 只要原价 10%
· Batch API(第 8 章)—— 整体 50% 折扣,适合离线任务
· 模型分层 —— Haiku 过滤 → Sonnet 主力 → Opus 攻坚
三者叠加,生产月账单能再砍 70%。
环境变量惯例
# ~/.zshrc 或 .env export ANTHROPIC_API_KEY="sk-ant-api03-..." # 可选:自定义 endpoint(走代理) export ANTHROPIC_BASE_URL="https://your-proxy/v1" # 可选:日志级别 export ANTHROPIC_LOG="debug"
SDK 默认读这些变量,代码里就不用硬编码了。
报错速查
401 Unauthorized
API Key 错 / 漏
sk-ant- 前缀 / 被禁用429 Rate Limit
限流,检查 Usage tier;写退避重试(第 10 章)
400 Invalid Request
大概率:没填 max_tokens / messages 为空 / model id 拼错 / role 不交替
529 Overloaded
Anthropic 侧过载,重试即可(带退避)
空 content / 被截断
stop_reason = max_tokens,把 max_tokens 调大和 OpenAI API 的主要差异
| OpenAI | Anthropic | |
|---|---|---|
| 端点 | /v1/chat/completions | /v1/messages |
| system | messages 里 role=system | 顶层单独 system 字段 |
| max_tokens | 可选 | 必填 |
| 流式 | stream=true | stream=true(SSE 事件结构不同) |
| tool_use | function_call / tool_calls | content 里直接出 tool_use block |
| Prompt Caching | 自动 | 显式 cache_control 打点 |
本章小结
- 模型:Opus / Sonnet / Haiku 各司其职,生产多层混用
- 所有调用走 /v1/messages;
max_tokens必填,role 交替 content永远是数组,有 text / tool_use / thinking 等 block- 计费看
usage里的 input/output tokens,Cache 字段第 6 章细讲 - 和 OpenAI 对比最大差异:system 独立字段 + 显式 Prompt Caching