月花 200 刀调 Claude 的我,改了一个参数后现在只花 60
月花 200 刀调 Claude 的我,改了一个参数后现在只花 60
结论先说:把 base_url 换掉,再把非必要的 claude-3-opus 请求降到 haiku,账单直接砍掉 70%。
痛点
上个月账单 218 刀,看到直接麻了。
翻了一下日志,问题很集中:
- 用 claude-3-5-sonnet 跑了一堆"提取 JSON 字段"的任务,每次都是 2k token 进、200 token 出
- 有个 cron job 每小时跑一次摘要,我忘了它的存在,静默烧了大概 40 刀
- 本地调试没做 mock,每次改提示词都真实打一遍 API
这三条加起来占了账单的 80%。
怎么改的
第一步:换 base_url,价格直接打折
我现在用的是一个聚合中转,同模型比官方便宜 65% 左右,SVIP 还有 7.7 折。格式完全兼容 OpenAI,改一行就行:
from openai import OpenAI
client = OpenAI(
api_key="你的 key",
base_url="https://api2everything.xyz/v1"
)
resp = client.chat.completions.create(
model="claude-3-5-sonnet-20241022",
messages=[{"role": "user", "content": "hello"}]
)
print(resp.choices[0].message.content)
curl 版本:
curl https://api2everything.xyz/v1/chat/completions \
-H "Authorization: Bearer 你的key" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"messages": [{"role": "user", "content": "hello"}]
}'
就这样,什么都不用动,存量代码全兼容。
第二步:给任务做模型分级
不是所有任务都需要 Sonnet,更不需要 Opus。我现在的分法:
| 任务类型 | 模型 | 理由 |
|------|------|------|
| 提取字段、分类、简单改写 | claude-3-haiku | 够用,快,便宜 10 倍 |
| 代码生成、复杂推理 | claude-3-5-sonnet | 主力 |
| 极少数需要最强的 | claude-3-opus | 按需,不做默认 |
那个"提取 JSON 字段"的任务换成 haiku 之后,效果完全没差,token 单价直接降了 90%。
第三步:cron job 加日志报警
这个不是 API 的锅,是自己的问题。现在每个定时任务跑完都往 Slack 发一条消息,带上本次消耗的 token 数,超过阈值就报警。低技术含量但确实有用。
这个月账单
换完之后这个月预估 58 刀,跑的任务量比上个月还多一点。
主要节省来自两块:中转的折扣大概省了 65 刀,模型降级又省了将近 80 刀。
我用的中转是 api2everything.xyz,注册送 ¥1,余额永久不过期,够用来跑跑测试或者验证新模型。支持 OpenAI、Claude、Gemini、DeepSeek 等 300+ 模型,国内直连不用代理。
有类似账单问题的可以试试,改一行 base_url 的事。