省钱实战 · 阅读约 3 分钟

月账单从 $200 砍到 $60,就改了一个 base_url

月账单从 $200 砍到 $60,就改了一个 base_url

结论先说:把 Claude API 请求转到国内中转,配合 Haiku 做分级路由,账单直接打三折。


痛点

我有个内部工具,给团队做代码 review + 文档生成。跑了两个月,Claude Sonnet 的账单涨到 $200+/月。

细看 token 分布,发现问题很明显:

  • 80% 的请求是「格式化输出」「补全注释」这类简单任务
  • 真正需要 Sonnet 推理能力的不超过 20%
  • 但我全部走的 claude-sonnet-4-5,没做任何分级

另外还有个隐性成本:国内访问 Anthropic 官方 API 需要挂代理,CI/CD 环境里配代理很麻烦,偶尔还会超时重试,浪费 token。


具体怎么改的

第一步:换 base_url,解决连通性问题

找了个支持 OpenAI 格式的中转服务,改一行配置:


import anthropic



client = anthropic.Anthropic(

    api_key="你的中转 key",

    base_url="https://api2everything.xyz/v1",

)

或者用 OpenAI SDK 直接调 Claude(中转做了格式兼容):


from openai import OpenAI



client = OpenAI(

    api_key="你的中转 key",

    base_url="https://api2everything.xyz/v1",

)



response = client.chat.completions.create(

    model="claude-haiku-4-5",  # 简单任务走 Haiku

    messages=[{"role": "user", "content": "帮我补全这段注释..."}],

)

curl 版本:


curl https://api2everything.xyz/v1/chat/completions \

  -H "Authorization: Bearer $API_KEY" \

  -H "Content-Type: application/json" \

  -d '{

    "model": "claude-haiku-4-5",

    "messages": [{"role": "user", "content": "你好"}]

  }'

第二步:按任务复杂度分级路由


def get_model(task_type: str) -> str:

    routing = {

        "format":   "claude-haiku-4-5",      # 格式化、补全注释

        "summary":  "claude-haiku-4-5",      # 摘要、简单问答

        "review":   "claude-sonnet-4-5",     # 代码 review

        "architect":"claude-opus-4-5",       # 架构设计(很少用)

    }

    return routing.get(task_type, "claude-haiku-4-5")

Haiku 比 Sonnet 便宜约 20 倍,把 80% 的简单请求切过去,账单自然就下来了。


改完之后

  • 月账单:$200 → ~$60
  • CI/CD 里不用再配代理,超时问题消失
  • Haiku 处理注释补全的质量完全够用,没有明显退步

唯一要注意的是,分级路由需要在业务层做 task_type 标注,有一点接入成本,但一次性的。


补充

中转服务选的是 无量Api,支持 Claude / GPT / Gemini / DeepSeek 300+ 模型,国内直连,OpenAI 格式兼容。注册送 ¥1,够跑几百次 Haiku 请求,先试试再说。