月烧 $200 调 Claude 的我,换了个 baseURL,账单直接砍 60%
月烧 $200 调 Claude 的我,换了个 baseURL,账单直接砍 60%
结论先说:把 API endpoint 换成国内中转,同样的调用量,费用降到原来的 35%。
背景
做了个内部工具,核心是 Claude Sonnet 处理长文档。日均请求量不大,但 prompt 都是 2000+ token 的系统提示,加上文档内容,每次调用轻松上万 token。
上个月账单出来:$187。
不是什么高并发,就是正常的工具调用量。主要问题有两个:
1. Anthropic 官方不支持国内信用卡,每次充值要走汇率,还要手续费
2. Claude Sonnet 定价不便宜,偶尔测试随手发请求,完全没有成本感知
怎么降的
第一步:把测试流量切到便宜的模型
原来本地调试也用 Sonnet,纯粹是习惯问题。调试阶段用 claude-haiku-3-5 或者 gemini-flash 完全够用,速度还更快。
加一个 MODEL 环境变量区分环境:
import os
MODEL = os.getenv("MODEL", "claude-haiku-3-5-20241022") # 本地默认 Haiku
# 生产环境设 MODEL=claude-sonnet-4-5
client = anthropic.Anthropic(
base_url=os.getenv("ANTHROPIC_BASE_URL"),
api_key=os.getenv("ANTHROPIC_API_KEY"),
)
这一步能砍掉 30% 的账单,因为调试流量比你想象的多。
第二步:换 baseURL
OpenAI 兼容格式的中转支持直接改 base_url,不用改任何业务逻辑:
from openai import OpenAI
client = OpenAI(
base_url="https://api2everything.xyz/v1",
api_key="你的中转 key",
)
response = client.chat.completions.create(
model="claude-sonnet-4-5", # 模型名和官方一致
messages=[{"role": "user", "content": "test"}],
)
curl 版本:
curl https://api2everything.xyz/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "hello"}]
}'
就这一行改动。原来的 LangChain、LlamaIndex 代码一字不动。
第三步:加个简单的 token 计数日志
不记录就没有成本感知,容易无意识地浪费:
def call_with_log(client, **kwargs):
resp = client.chat.completions.create(**kwargs)
usage = resp.usage
print(f"[usage] in={usage.prompt_tokens} out={usage.completion_tokens}")
return resp
打出来之后我才意识到,有几个接口的系统提示完全可以压缩,prompt token 减少 40%。
实际效果
| 项目 | 之前 | 之后 |
|------|------|------|
| 测试模型 | Sonnet | Haiku |
| 调用费率 | 官方价 | 官方 65 折 |
| 本月账单 | $187 | ~$65 |
不是什么黑魔法,就是把一直在忽略的几个点落地了。
我用的中转是 api2everything.xyz,支持 Claude / GPT / Gemini / DeepSeek 等 300+ 模型,国内直连不用梯子,注册送 ¥1 够试很久。普通用户 65 折,SVIP 是 7.7 折,余额永久不过期。