省钱实战 · 阅读约 4 分钟

月花 $200 调 Claude 的我,改了一行代码后账单直接砍掉 70%

月花 $200 调 Claude 的我,改了一行代码后账单直接砍掉 70%

结论先说:把 base_url 换掉,同样的代码跑同样的模型,费用能省 60%+。


痛点

我有个每天跑的代码审查 pipeline,用 Claude Sonnet 批量处理 PR diff,高峰期一个月 API 账单能到 $180-200。

官方没什么好办法压缩——模型不能降太多,不然输出质量掉得明显;prompt 已经优化过了;batch API 倒是便宜一半,但我的场景需要实时返回,batch 用不上。

卡了挺久,后来发现问题根本不在代码,在于我一直在给官方渠道付溢价。


具体操作

第一步:换 base_url,代码零改动

用 OpenAI SDK 的项目改起来就一行:


from openai import OpenAI



client = OpenAI(

    api_key="你的中转 key",

    base_url="https://api2everything.xyz/v1"  # 只改这里

)



# 以下全部不动

response = client.chat.completions.create(

    model="claude-sonnet-4-5",

    messages=[{"role": "user", "content": "review this diff: ..."}],

    max_tokens=1024

)

print(response.choices[0].message.content)

curl 版本:


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

  -H "Authorization: Bearer 你的key" \

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

  -d '{

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

    "messages": [{"role": "user", "content": "hello"}]

  }'

接口格式完全 OpenAI 兼容,Langchain / LlamaIndex 这些框架改 base_url 同理。

第二步:分级用模型,别什么都上 Sonnet

我现在的策略是把任务按复杂度分两档:

  • 简单任务(格式检查、注释补全、变量命名建议)→ 走 claude-haiku-4-5,价格是 Sonnet 的 1/5 左右
  • 复杂任务(架构分析、逻辑 bug 定位、多文件关联审查)→ 才上 Sonnet

def get_model(task_type: str) -> str:

    cheap_tasks = {"format", "comment", "rename", "lint"}

    return "claude-haiku-4-5" if task_type in cheap_tasks else "claude-sonnet-4-5"

这一步比换渠道省得还多,我的 pipeline 里 70% 的请求其实是简单任务,全换 Haiku 之后这部分费用直接打了两折。

第三步:加个本地缓存,重复 prompt 不重复花钱

代码审查场景里有大量重复的 system prompt 和 few-shot 示例,每次都带着发是在浪费 token。


import hashlib, json

from functools import lru_cache



@lru_cache(maxsize=512)

def cached_review(diff_hash: str, model: str) -> str:

    # 真正的 API 调用

    ...



def review_diff(diff: str, model: str) -> str:

    diff_hash = hashlib.md5(diff.encode()).hexdigest()

    return cached_review(diff_hash, model)

同一个 diff 在 CI 里重跑不会二次计费,省了大概 15% 的重复请求。


结果

三步下来,同样的 pipeline:

| 项目 | 之前 | 之后 |

|------|------|------|

| 月均费用 | ~$190 | ~$55 |

| 代码改动量 | — | 约 20 行 |

| 输出质量 | 基准 | 无明显差异 |


我用的中转是 api2everything.xyz,支持 Claude / GPT / Gemini / DeepSeek 300+ 模型,注册送 ¥1 余额,够把上面的 curl 跑个几十次验证一下。有问题欢迎回帖。