月账单从 $200 砍到 $60,我只改了一行 Base URL
月账单从 $200 砍到 $60,我只改了一行 Base URL
结论先说:同样的 Claude 调用量,换个中转节点 + 调整模型选型,账单直接降到三分之一。
痛点
上个月 Claude API 账单 $210,主要是两个项目在跑:一个 RAG pipeline,一个代码 review bot。
问题在于我用 Claude 3.5 Sonnet 处理了大量「不值得用 Sonnet」的任务——文档分块、格式转换、简单分类,这些任务 Haiku 完全够用,但我图省事全走了一个 model。
另一个问题:官方 API 国内访问需要代理,偶尔超时报错还要处理重试逻辑,维护成本不低。
具体操作
第一步:改 Base URL
不需要改任何业务代码,只改 base_url:
from openai import OpenAI
client = OpenAI(
api_key="你的 key",
base_url="https://api.api2everything.xyz/v1" # 改这一行
)
接口格式完全兼容 OpenAI,model 字段直接填 claude-3-5-sonnet-20241022 或 gemini-2.0-flash 都行,300+ 模型一个 key 全走。
第二步:按任务分级用模型
我现在的策略:
| 任务类型 | 之前 | 现在 |
|---|---|---|
| 文档分块/格式转换 | claude-3-5-sonnet | claude-haiku-3 |
| 简单分类/摘要 | claude-3-5-sonnet | gemini-2.0-flash |
| 代码 review/复杂推理 | claude-3-5-sonnet | 保持不变 |
Haiku 价格是 Sonnet 的约 1/15,Gemini Flash 更便宜。简单任务质量够用。
第三步:curl 验证一下连通性
curl https://api.api2everything.xyz/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "claude-haiku-3",
"messages": [{"role": "user", "content": "hello"}],
"max_tokens": 50
}'
国内直连,不用挂代理,延迟正常。
分级调用的 Python 片段(可直接用)
def call_llm(prompt: str, task_type: str = "simple") -> str:
model_map = {
"simple": "claude-haiku-3", # 分类、摘要、格式化
"medium": "gemini-2.0-flash", # 中等复杂度
"complex": "claude-3-5-sonnet-20241022", # 代码、推理
}
response = client.chat.completions.create(
model=model_map[task_type],
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 文档分块走 simple
chunks = [call_llm(chunk, task_type="simple") for chunk in docs]
# 代码 review 走 complex
review = call_llm(code, task_type="complex")
加一个 task_type 参数,调用层不动业务逻辑,模型切换完全解耦。
结果
这个月跑了三周,账单折合人民币约 ¥430,上个月同等调用量是 ¥1450。
主要降幅来自两块:
- 简单任务换 Haiku/Flash 节省约 60%
- 国内直连省掉了代理费用,顺带把超时重试的维护时间也省了
我用的中转是 api2everything.xyz,注册送 ¥1,够试很久。官方价基础上还有折扣(SVIP 7.7 折),余额不会过期,账单高的可以算一下划不划算。