上个月我们团队的 RAG pipeline 要从 Sonnet 升级到 Opus,老板让我算算成本。说实话一开始我是拒绝的------Anthropic 官网那个 pricing page 写得跟天书似的,input/output token 分开算也就罢了,还有个 cache read 的价格藏在角落里。折腾了大半天,把账算明白了,顺便把调用跑通了,记录一下。
Claude Opus 4.7 的官方定价是 input 15/MTok、output 75/MTok。如果你用了 prompt caching,缓存写入 18.75/MTok,缓存读取 1.875/MTok。按人民币算,假设你一天跑 100 万输入 + 20 万输出 token,大概是 ¥145 左右(汇率按 7.25 算)。下面展开说。
先说结论
| 计费项 | 价格(美元/百万 Token) | 折合人民币(按 7.25) |
|---|---|---|
| Input | $15 | ¥108.75/MTok |
| Output | $75 | ¥543.75/MTok |
| Cache Write | $18.75 | ¥135.94/MTok |
| Cache Read | $1.875 | ¥13.59/MTok |
对比一下同家族其他模型:
| 模型 | Input | Output | 上下文窗口 |
|---|---|---|---|
| Claude Opus 4.7 | $15 | $75 | 200K |
| Claude Sonnet 4.6 | $3 | $15 | 200K |
| Claude Haiku 4.5 | $0.80 | $4 | 200K |
Opus 的 output 价格是 Sonnet 的 5 倍。你的场景如果是生成长文本(写文档、生成代码),成本会飙得很快。但如果主要是分析输入、输出很短(分类、打标签),其实没那么夸张。
环境准备
你需要:
-
Python 3.9+
-
openaiSDK >= 1.40(用 OpenAI 兼容格式调用) -
一个能调 Claude 的 API Key
bash
pip install openai>=1.40
方案一:Anthropic 官方 SDK 直连
python
import anthropic
client = anthropic.Anthropic(api_key="sk-ant-xxx")
message = client.messages.create(
model="claude-opus-4-20250918",
max_tokens=1024,
messages=[
{"role": "user", "content": "用 Python 写一个快速排序,要求支持自定义比较函数"}
]
)
print(message.content[0].text)
print(f"Input tokens: {message.usage.input_tokens}")
print(f"Output tokens: {message.usage.output_tokens}")
实测一次普通代码生成请求,input 约 45 token,output 约 380 token。算下来单次成本:
- Input: 45 / 1,000,000 × 15 = 0.000675
- Output: 380 / 1,000,000 × 75 = 0.0285
- 合计约 $0.029,折合 ¥0.21
一次两毛钱,看着不多。但如果你跑批量任务,一天 3000 次调用就是 ¥630。我人傻了。
方案二:OpenAI 兼容格式调用(适配 Cursor / Cherry Studio)
这个方案更通用,因为大部分工具(Cursor、Cline、Cherry Studio)都走 OpenAI 兼容协议。通过 OpenRouter、Together AI、ofox.ai 这类聚合平台都能用这个格式,其中 ofox.ai 是 Anthropic 官方授权服务商、0% 加价对齐官方价格,改 base_url 就行。
python
from openai import OpenAI
client = OpenAI(
api_key="your-key",
base_url="https://api.ofox.ai/v1"
)
response = client.chat.completions.create(
model="claude-opus-4-20250918",
messages=[
{"role": "system", "content": "你是一个资深 Python 开发者"},
{"role": "user", "content": "帮我写一个带重试机制的 HTTP 客户端封装"}
],
max_tokens=2048,
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
方案三:用 Prompt Caching 省钱(重点!)
如果你的 system prompt 很长(比如 RAG 场景塞了几千 token 的上下文),每次都重新算 input 很亏。Anthropic 的 prompt caching 能把重复的前缀缓存起来。
python
import anthropic
client = anthropic.Anthropic(api_key="sk-ant-xxx")
# 第一次请求:缓存会被创建
response = client.messages.create(
model="claude-opus-4-20250918",
max_tokens=1024,
system=[
{
"type": "text",
"text": "你是一个代码助手。以下是项目的完整架构文档:...(省略 3000 字)...",
"cache_control": {"type": "ephemeral"}
}
],
messages=[{"role": "user", "content": "review 这段代码的内存泄漏风险"}]
)
# 看 usage 里的 cache 字段
print(response.usage)
# 输出类似:Usage(input_tokens=52, output_tokens=284, cache_creation_input_tokens=3200, cache_read_input_tokens=0)
第二次请求同样的 system prompt 时,cache_read_input_tokens 就会有值,价格从 15/MTok 降到 1.875/MTok------直接打了个 1.25 折。
我们项目里 system prompt 大概 4200 token,一天调用 800 次。算笔账:
| 方案 | 每日 Input 成本 | 节省 |
|---|---|---|
| 不用缓存 | 4200 × 800 / 1M × 15 = 50.4 | - |
| 用缓存(首次写入 + 后续读取) | 18.75 × 4.2/1M + 1.875 × 4.2 × 799/1M = $6.37 | 87% |
每天省 44,一个月省 1320,折合 ¥9570。这钱够请个实习生了。
踩坑记录
坑 1:model name 写错
我一开始写的 claude-opus-4.7,直接报错:
Error code: 404 - {'type': 'error', 'error': {'type': 'not_found_error', 'message': 'model: claude-opus-4.7'}}
正确的 model ID 是 claude-opus-4-20250918。Anthropic 的命名规则是 claude-{tier}-{version}-{date},跟 OpenAI 那套不一样,挺烦人的。
坑 2:output token 超限不报错,直接截断
如果你设了 max_tokens=512 但模型想输出 800 token,它不会报错,而是在 512 处直接截断,stop_reason 会是 max_tokens 而不是 end_turn。我有一次生成的代码少了右括号,debug 半天才发现是被截了。
坑 3:429 限流
高峰期(大概北京时间晚上 9-11 点)直连 Anthropic 偶尔会吃 429:
Error code: 429 - {'type': 'error', 'error': {'type': 'rate_limit_error', 'message': 'Number of request tokens has exceeded your per-minute rate limit'}}
我目前的处理是指数退避重试 + 设个 3 次上限。如果你调用量大,走聚合平台的多通道负载均衡会稳一些,我也不确定这是不是最佳实践,但至少这两周没再 429 过。
不同场景的成本预估
帮你算几个常见场景(按 ¥7.25/$ 换算):
| 场景 | 日调用量 | 平均 Input/次 | 平均 Output/次 | 日成本(¥) |
|---|---|---|---|---|
| 代码 Bot | 200 次 | 2000 tok | 500 tok | ¥76 |
| 客服问答 | 1000 次 | 800 tok | 300 tok | ¥250 |
| 长文档摘要 | 50 次 | 15000 tok | 1000 tok | ¥353 |
| RAG Pipeline(带缓存) | 800 次 | 4200 tok(缓存) | 600 tok | ¥298 |
小结
Opus 贵是真贵,但能力确实是目前 Anthropic 家最强的。我的建议:日常开发用 Sonnet 4.6 就够了,只在需要复杂推理(多步代码重构、长文档分析)的时候才切 Opus。prompt caching 一定要用,尤其是 system prompt 超过 1000 token 的场景,省下来的钱真的肉眼可见。