省钱实战 · 阅读约 3 分钟

月烧 $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 折,余额永久不过期。