大模型API涨价,程序员如何控制调用成本

大模型API涨价后,程序员控制调用成本的核心思路是:把每一次调用都当成花钱,先缓存、再降级、后压缩、最后监控。
这篇文章面向正在使用大模型API做开发、但账单开始失控的程序员,按可落地的顺序给出配置和代码片段,读完你能立刻在项目里减少不必要的调用。

先看清钱花在哪:用量审计与基线记录

控制成本的第一步不是改代码,而是知道自己每天花了多少、花在哪个接口。
建议在网关或业务层加一层日志,记录每次调用的模型名、输入token、输出token、耗时和调用场景。

如果项目已经接入网关(如One API、LiteLLM等),通常在后台的日志页面就能看到按模型和按key的用量统计。
没有网关的话,在代码里加几行日志即可:

import time, logging
logging.basicConfig(filename='llm_usage.log', level=logging.INFO)

def call_llm(model, prompt, resp):
    logging.info({
        'ts': int(time.time()),
        'model': model,
        'prompt_tokens': resp.usage.prompt_tokens,
        'completion_tokens': resp.usage.completion_tokens,
        'scene': 'chat'
    })

先跑三天,拿到基线数据
没有基线,后面所有优化都无法验证效果。

缓存命中:让重复问题只花一次钱

很多业务场景里,用户问的问题是高度重复的。
比如客服FAQ、文档问答、代码解释,同一句话可能被问几十次。
这类场景直接用缓存挡住,成本能降一大截。

最简单的做法是用问题文本的hash做key,把模型返回存进Redis:

import hashlib, json, redis
r = redis.Redis(host='127.0.0.1', port=6379, db=0)

def cached_ask(prompt):
    key = 'llm:' + hashlib.md5(prompt.encode()).hexdigest()
    hit = r.get(key)
    if hit:
        return json.loads(hit)
    answer = call_llm(prompt)
    r.setex(key, 86400, json.dumps(answer))
    return answer

缓存过期时间根据业务调整:FAQ类可以设24小时,时效性内容设1小时以内。缓存命中率超过30%时,成本下降会非常明显

模型路由:简单问题别用最贵的模型

不是所有请求都需要顶级模型。
把请求按复杂度分流,简单分类、抽取、改写用便宜的小模型,复杂推理和长文生成才走大模型。

可以在网关层配置路由规则,也可以在业务代码里判断:

LIGHT_TASKS = {'classify', 'extract', 'rewrite'}

def route(task_type, prompt):
    if task_type in LIGHT_TASKS:
        return call_llm(model='gpt-4o-mini', prompt=prompt)
    return call_llm(model='gpt-4o', prompt=prompt)

判断条件可以更细:输入token少于200且任务类型是分类或抽取,就走小模型;
需要多步推理或输出超过500token,才走大模型。多数业务里,60%以上的请求其实用不上最强模型

Token压缩:把输入和输出都瘦下来

Token是计费的基本单位,输入和输出都算钱。
压缩分两个方向:输入侧精简提示词和历史上下文,输出侧限制max_tokens并去掉冗余格式。

输入侧常见的浪费是把整篇文档塞进prompt。
可以先做检索,只把最相关的2-3段拼进去。
历史对话也不要全量带上,保留最近3轮加摘要即可:

def build_prompt(history, question, max_history=3):
    recent = history[-max_history:]
    return '\n'.join([f"{m['role']}: {m['content']}" for m in recent]) + f"\nuser: {question}"

输出侧设置合理的max_tokens,并在提示词里要求模型直接给结果、不要解释过程。输入压缩30%、输出限制在必要长度,整体成本通常能再降20%-40%

监控告警:别等账单来了才发现

成本控制需要持续监控。
建议设置日用量阈值,超过就告警。
可以在网关后台配置额度限制,也可以用脚本定时查询用量接口。

以LiteLLM为例,在config.yaml中设置预算:

budget_duration: 24h
max_budget: 20

同时每天记录一次各模型的token消耗,观察趋势。
如果某天用量突然翻倍,优先检查是不是缓存失效或路由规则被改。

常见疑问

缓存会不会导致回答过时?
会。所以缓存key要包含业务版本号或日期,时效性内容设置短过期时间,并在返回时标注“来自缓存”。

小模型回答质量不够怎么办?
先用小模型跑一批测试集,对比大模型结果。如果准确率差距在可接受范围内(比如分类任务差5%以内),就放心用。差距大的任务保留大模型。

涨价后已经上线的功能要不要砍?
不建议直接砍功能。先做用量审计,找出调用量最大但价值最低的场景,优先优化那部分。多数项目优化后能回到涨价前的成本水平。

控制大模型API调用成本不是一次性工作,而是持续的过程。
从用量审计开始,依次落地缓存、路由、压缩和监控,每一步都有明确的验证方式:缓存看命中率,路由看模型分布,压缩看平均token数,监控看日账单趋势。
按这个顺序执行,你就能在涨价环境下把成本控制在可预期范围内。

分享到:
上一篇
AI批量生成网站前端页面,搭配CMS使用
下一篇
本地部署大模型算力机器硬件选型指南
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意