月账单从 $180 掉到 $55,我只改了两件事
月账单从 $180 掉到 $55,我只改了两件事
结论先说:换中转 API + 把非核心任务降一档模型,账单直接砍掉 70%。
痛点
我有个自用的代码审查 bot,跑在本地,每次 push 自动调 Claude 分析 diff。用了两个月,账单涨到 $180/月,吓了一跳。
翻了下用量日志,问题很明显:
1. 所有请求都打到 claude-3-5-sonnet,包括那些只是格式检查、注释补全的低价值任务
2. 直连 Anthropic,国内延迟高,偶尔超时重试,等于同一个请求付了两次钱
3. 没做任何缓存,相同的 system prompt 每次都重新计费
怎么改的
第一步:换 Base URL
我现在用的是 无量 API,支持 OpenAI 格式,改一行就行:
from openai import OpenAI
client = OpenAI(
api_key="你的 key",
base_url="https://api2everything.xyz/v1" # 改这一行
)
其他代码一行不动。Claude、GPT-4o、Gemini、DeepSeek 全都走这个 endpoint,不用管各家 SDK 差异。
第二步:按任务分级用模型
之前无脑 sonnet,现在按复杂度拆:
| 任务类型 | 之前 | 现在 |
|---|---|---|
| 复杂逻辑审查 | claude-3-5-sonnet | claude-3-5-sonnet(保留) |
| 注释/格式检查 | claude-3-5-sonnet | claude-3-haiku-20240307 |
| 简单问答/补全 | claude-3-5-sonnet | deepseek-chat |
Haiku 比 Sonnet 便宜大概 20 倍,处理格式类任务完全够用。
可以直接抄的片段
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["WULIANG_API_KEY"],
base_url="https://api2everything.xyz/v1"
)
def review_code(diff: str, is_complex: bool = False) -> str:
# 复杂逻辑用 sonnet,简单检查用 haiku
model = "claude-3-5-sonnet-20241022" if is_complex else "claude-3-haiku-20240307"
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "你是代码审查助手,只输出问题列表,不废话。"},
{"role": "user", "content": f"审查以下 diff:\n{diff}"}
],
max_tokens=512
)
return resp.choices[0].message.content
# 用法
result = review_code(diff_text, is_complex=len(diff_text) > 2000)
逻辑很简单:diff 超过 2000 字符才认为是复杂任务,其余走 Haiku。实际可以根据自己场景调阈值。
效果
改完跑了一个月:
- Haiku 承接了大约 75% 的请求量
- 总 token 消耗没变,账单从 $180 → $55
- 延迟反而更稳了,国内直连比之前好很多
没什么黑魔法,就是别让贵模型干便宜活。
我用的中转是 api2everything.xyz,注册送 ¥1,余额永久不过期,够试很久。300+ 模型,OpenAI 格式,改 base_url 就能用。