低成本调用 Claude Opus 5.5 API:缓存省钱实算与 DDS Hub 分组选型
同样调用 Claude Opus 5.5,有的请求只发送几百个 Token,有的却每次重复上传整份项目资料。即使模型相同,最终账单也可能差很多。
想控制成本,可以从三个地方入手:减少重复输入、约束生成内容,再选择适合自己客户端和用量的接入分组。下面用官方费率做一次缓存演算,并说明如何把 DDS Hub 纳入接入方案比较。
资料核验日期:2026 年 10 月 20 日。价格与示例依据公开文档整理,未进行付费调用实测。
一、先建立费用基线
Claude Opus 5.5 的模型 ID 是 claude-opus-5-5。根据官方模型文档,基础费率如下,单位均为美元/百万 Token:
| 计费项目 | 单价 |
|---|---|
| 普通输入 | 4 |
| 输出 | 20 |
| 5 分钟缓存写入 | 5 |
| 1 小时缓存写入 | 8 |
| 缓存命中读取 | 0.20 |
缓存读取单价相当于普通输入的 5%,但这只描述命中的输入部分。首次写入、未缓存输入和输出仍要计费,不能直接把它写成“整个项目省 95%”。
估算时应把几项分开:
费用 = 普通输入费用 + 缓存写入费用 + 缓存读取费用 + 输出费用
同一部分输入不要既算普通输入,又重复算缓存费用。工具、特殊模式等额外费用需要另行核对。
二、重复使用同一份资料,缓存能省多少?
假设一个文档问答任务有以下用量:
- 共享资料为 10,000 Token,连续调用 10 次。
- 每次新增问题为 1,000 Token,计费输出为 1,000 Token。
- 第一次创建 5 分钟缓存,后续 9 次均在有效期内命中同一资料前缀。
- 不涉及其他费用或折扣。
按上面的官方费率计算:
| 成本项 | 不使用缓存 | 使用缓存 |
|---|---|---|
| 共享资料 | 0.400 美元 | 首次写入 0.050 美元+后续读取 0.018 美元 |
| 新增问题 | 0.040 美元 | 0.040 美元 |
| 输出 | 0.200 美元 | 0.200 美元 |
| 合计 | 0.640 美元 | 0.308 美元 |
这个假设下,总费用降低约 51.9%。它适用于资料重复、缓存持续命中的情况;如果只问一次、资料经常改动或缓存失效,收益会下降,单次缓存写入甚至比普通输入更贵。
三、用 Python 验证缓存有没有生效
以下示例使用 Anthropic 官方 API,适合先理解缓存机制。需要 Python 3.10+、官方 API Key,以及一份准备反复使用的资料。
在 Windows PowerShell 的项目目录执行:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade anthropic
$env:ANTHROPIC_API_KEY = "替换为你的官方API密钥"
确认环境中没有其他接入服务遗留的 ANTHROPIC_BASE_URL 配置。把资料保存为 UTF-8 的 knowledge.txt,再在同一目录创建 ask_opus.py:
import os
import sys
from pathlib import Path
from anthropic import Anthropic
knowledge = Path(__file__).with_name("knowledge.txt").read_text(
encoding="utf-8"
)
question = sys.argv[1] if len(sys.argv) > 1 else "请概括资料的关键结论。"
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=2048,
system=[{
"type": "text",
"text": "根据以下资料回答问题;资料不足时明确说明。\n\n" + knowledge,
"cache_control": {"type": "ephemeral"},
}],
messages=[{"role": "user", "content": question}],
)
for block in message.content:
if block.type == "text":
print(block.text)
usage = message.usage
print("普通输入:", usage.input_tokens)
print("缓存写入:", getattr(usage, "cache_creation_input_tokens", 0))
print("缓存读取:", getattr(usage, "cache_read_input_tokens", 0))
print("输出:", usage.output_tokens)
print("停止原因:", message.stop_reason)
运行时传入问题:
.\.venv\Scripts\python.exe ask_opus.py "资料中的方案有哪些限制?"
每次执行都会发起一次计费请求。在有效期内保持资料和缓存前缀一致,再提出其他问题,观察 cache_read_input_tokens 是否大于 0,而不是只看是否添加了 cache_control。
根据官方缓存文档,Opus 5.5 最小可缓存长度为 512 Token,默认 ephemeral 缓存有效期为 5 分钟。资料过短或前缀变化都可能无法命中。不要为了“凑缓存”添加无关文本,应优先复用真正需要的资料。
四、比较 DDS Hub 时,先看分组再算价格
如果希望比较其他接入方案,可以从 DDS Hub 模型广场查看 claude-opus-5-5,核对当前分组、输入输出费率和缓存价格。
DDS Hub 提供不同分组的选择入口。对预算敏感的开发者,可以先按模型和客户端要求筛选,再比较预计用量对应的实际费用:
- 确认目标分组支持 Opus 5.5,以及自己使用的客户端。
- 核对普通输入、输出、缓存写入和读取四项价格。
- 确认分组倍率是否已计入显示价格,以及充值金额与平台积分的换算。
- 按使用教程创建对应令牌,设置合适的消费上限,再用小规模请求核对账单。
当前公开页面同时出现美元符号、人民币积分、充值比例和分组倍率,因此不能把页面数字直接当作官方美元账单比较,更不能只凭一个倍率就断言固定节省比例。上面的 0.308 美元演算使用官方费率,不是 DDS Hub 报价。
还要注意,DDS Hub FAQ列有“分组仅允许 Claude Code 客户端”的报错。准备运行 Python 程序时,应先确认普通 Messages API 权限、认证方式、请求地址和缓存支持,不能把 Claude Code 专用配置直接套进本文代码。
五、控制输出与任务量,继续减少开销
缓存之外,可以先做三项调整:
- 明确回答范围。 指定需要的字段、结论或修改片段,减少无关长输出。
- 只发送相关上下文。 从项目或文档中选取当前任务需要的内容,避免每次上传全部历史。
- 区分实时与离线任务。 官方文档列明 Batch API 的输入输出价格有 50% 折扣;不要求即时返回的任务可评估批处理,接入服务是否支持则需要另查。
max_tokens 是生成上限,不是固定账单;设置过低也可能截断回答。应结合 usage、停止原因和结果是否可用一起调整。
另外,Opus 5.5 的自适应思考始终开启,官方不接受通过 thinking: {"type": "disabled"} 关闭它。迁移旧代码时,不要把这个配置当作省钱开关。
六、用实际账单决定接入方案
可以先拿一组相同任务记录四类输入输出用量,再比较结果质量、成功率和实际扣费。一个实用指标是:
平均可用结果成本 = 这组任务的总实际费用 ÷ 达到要求的结果数量
重复计费的重试、无法使用的长回答,同样会影响这个指标。
准备通过 DDS Hub 接入时,可以先核对当前模型与分组,再确认缓存和客户端条件。用真实任务的小规模账单替代单一折扣标签,更容易找到适合自己项目的低成本方案。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu