省钱实战 · 阅读约 3 分钟

月账单从 $200 砍到 $60,我只改了两处配置

月账单从 $200 砍到 $60,我只改了两处配置

结论先说:把 Claude Opus 换成 Haiku + 开 prompt caching,账单直接掉到三分之一。


背景

我在做一个文档处理的小工具,核心是 Claude 做长文本理解。刚开始图省事,全链路都跑 claude-opus-4,上个月账单 $196,看了一眼心里一凉。

仔细 breakdown 了一下账单,发现两个问题:

1. 90% 的调用是分类和摘要任务,根本用不着 Opus 的推理能力

2. 每次请求都在重复发 system prompt,那是一段 2000 token 的指令,每次都计费


操作一:模型降级 + 分流

Haiku 的定价大概是 Opus 的 1/20,速度还更快。对于我的场景——批量跑文档分类、抽关键字——Haiku 完全够用。

改法很简单,加一个 model 路由参数:


def call_claude(prompt, task_type="classify"):

    model = "claude-haiku-4-5" if task_type in ("classify", "summary") else "claude-opus-4"

    response = client.messages.create(

        model=model,

        max_tokens=512,

        messages=[{"role": "user", "content": prompt}]

    )

    return response.content[0].text

只有真正需要复杂推理的任务才走 Opus,其他全走 Haiku。


操作二:开 Prompt Caching

这个是 Anthropic 官方支持的功能,把固定不变的 system prompt 标记为可缓存,重复命中不计 input token 费。


import anthropic



client = anthropic.Anthropic(

    base_url="https://api2everything.xyz/v1",  # 换成这个,其他不动

    api_key="your_key_here"

)



response = client.messages.create(

    model="claude-haiku-4-5",

    max_tokens=512,

    system=[

        {

            "type": "text",

            "text": "你是一个专业的文档分类助手,以下是分类规则:\n[...2000 token 的规则...]",

            "cache_control": {"type": "ephemeral"}  # 加这一行

        }

    ],

    messages=[{"role": "user", "content": "请对以下文档分类:..."}]

)

第一次请求会有 cache write 费用(比普通 input 贵一点),之后命中缓存基本不计费。批量跑几百条文档的场景,这个收益很明显。

V2EX 有帖子提到有人两个月缓存命中率 96%,我这边跑下来大概 80%+,场景合适的话真能省不少。


两步加起来效果

| 改动前 | 改动后 |

|---|---|

| 全 Opus,无 cache | Haiku 分流 + cache |

| $196/月 | $58/月 |

主要节省来自模型降级,cache 额外再砍了 15% 左右。


顺便一提

国内调 Claude/GPT 本来就有延迟和封号风险,我现在走的是 api2everything.xyz,直连不用挂梯子,比官方价格便宜 65%,base_url 一换就行,SDK 完全兼容,注册送 ¥1 够试很久。

有类似账单优化需求的可以评论区交流,感觉还有压缩空间,比如 batch API 那块还没研究透。