月账单从 $200 掉到 $60,就改了一个 BaseURL
月账单从 $200 掉到 $60,就改了一个 BaseURL
结论先说:把 API 请求转到聚合中转,模型不变,账单能砍掉六七成。
痛点
我的场景是给内部工具写了个代码 review 的 bot,跑 Claude 3.5 Sonnet,每天大概 200 个 PR,平均每个来回 6k tokens。
算下来:
200 PR × 6000 tokens × $3/1M (input) ≈ $3.6/天
加上 output,一个月稳稳 $150-200
官方账单倒没什么,主要是信用卡走美元结汇加手续费,实际到手贵一截。加上 Claude 官方充值有时候还要过验证,麻烦。
操作
第一步:改一行 BaseURL
原来的代码:
import anthropic
client = anthropic.Anthropic(
api_key="sk-ant-xxx",
base_url="https://api.anthropic.com" # 官方
)
换成中转之后:
import anthropic
client = anthropic.Anthropic(
api_key="你的中转key",
base_url="https://api.api2everything.xyz" # 中转,国内直连
)
其他代码一行不动。
如果你用 OpenAI SDK 兼容接口,更简单,curl 测一下:
curl https://api.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"}],
"max_tokens": 100
}'
格式和 OpenAI 完全一样,已有的 LangChain / LlamaIndex 项目改 base_url 就行。
第二步:根据场景换便宜 alias
这才是真正省钱的地方。我做了个分级:
| 场景 | 原来用 | 改成 | 省多少 |
|------|--------|------|--------|
| PR 标题生成、简单判断 | Sonnet | Haiku 3.5 | ~80% |
| 代码逻辑 review | Sonnet | Sonnet(不变) | - |
| 复杂架构讨论 | Sonnet | 偶尔 Opus | 按需 |
Haiku 3.5 在简单任务上效果和 Sonnet 差距很小,但价格差了 5-6 倍。我把 bot 里的第一步"判断这个 PR 是否值得深度 review"全换成了 Haiku,只有打分超过阈值的才上 Sonnet。
def should_deep_review(pr_diff: str) -> bool:
# 用 Haiku 做初筛,便宜
resp = client.messages.create(
model="claude-haiku-4-5", # 或 claude-haiku-3-5
max_tokens=10,
messages=[{
"role": "user",
"content": f"这个 diff 复杂度高吗?只回答 yes 或 no。\n{pr_diff[:2000]}"
}]
)
return "yes" in resp.content[0].text.lower()
def review_pr(pr_diff: str):
if not should_deep_review(pr_diff):
return "LGTM(自动通过简单 PR)"
# 才上 Sonnet
return full_review(pr_diff)
这个改动让 Sonnet 调用量降了约 60%。
结果
现在月账单稳定在 $55-65,折合人民币 400 左右,比之前省了两百多刀。
关键是中转服务余额不过期,不用担心每月充多了浪费,按需充就行。
我用的中转是 api2everything.xyz,支持 Claude / GPT-4o / Gemini / DeepSeek 300+ 模型,注册送 ¥1 够试很久,价格比官方便宜 65% 左右,国内直连不用折腾代理。