省钱实战 · 阅读约 3 分钟

月账单从 $180 掉到 $55,我只改了两件事

月账单从 $180 掉到 $55,我只改了两件事

结论先说:换中转 API + 把非核心任务降一档模型,账单直接砍掉 70%。


痛点

我有个自用的代码审查 bot,跑在本地,每次 push 自动调 Claude 分析 diff。用了两个月,账单涨到 $180/月,吓了一跳。

翻了下用量日志,问题很明显:

1. 所有请求都打到 claude-3-5-sonnet,包括那些只是格式检查、注释补全的低价值任务

2. 直连 Anthropic,国内延迟高,偶尔超时重试,等于同一个请求付了两次钱

3. 没做任何缓存,相同的 system prompt 每次都重新计费


怎么改的

第一步:换 Base URL

我现在用的是 无量 API,支持 OpenAI 格式,改一行就行:


from openai import OpenAI



client = OpenAI(

    api_key="你的 key",

    base_url="https://api2everything.xyz/v1"  # 改这一行

)

其他代码一行不动。Claude、GPT-4o、Gemini、DeepSeek 全都走这个 endpoint,不用管各家 SDK 差异。

第二步:按任务分级用模型

之前无脑 sonnet,现在按复杂度拆:

| 任务类型 | 之前 | 现在 |

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

| 复杂逻辑审查 | claude-3-5-sonnet | claude-3-5-sonnet(保留) |

| 注释/格式检查 | claude-3-5-sonnet | claude-3-haiku-20240307 |

| 简单问答/补全 | claude-3-5-sonnet | deepseek-chat |

Haiku 比 Sonnet 便宜大概 20 倍,处理格式类任务完全够用。


可以直接抄的片段


import os

from openai import OpenAI



client = OpenAI(

    api_key=os.environ["WULIANG_API_KEY"],

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

)



def review_code(diff: str, is_complex: bool = False) -> str:

    # 复杂逻辑用 sonnet,简单检查用 haiku

    model = "claude-3-5-sonnet-20241022" if is_complex else "claude-3-haiku-20240307"

    

    resp = client.chat.completions.create(

        model=model,

        messages=[

            {"role": "system", "content": "你是代码审查助手,只输出问题列表,不废话。"},

            {"role": "user", "content": f"审查以下 diff:\n{diff}"}

        ],

        max_tokens=512

    )

    return resp.choices[0].message.content



# 用法

result = review_code(diff_text, is_complex=len(diff_text) > 2000)

逻辑很简单:diff 超过 2000 字符才认为是复杂任务,其余走 Haiku。实际可以根据自己场景调阈值。


效果

改完跑了一个月:

  • Haiku 承接了大约 75% 的请求量
  • 总 token 消耗没变,账单从 $180 → $55
  • 延迟反而更稳了,国内直连比之前好很多

没什么黑魔法,就是别让贵模型干便宜活。

我用的中转是 api2everything.xyz,注册送 ¥1,余额永久不过期,够试很久。300+ 模型,OpenAI 格式,改 base_url 就能用。