如何控制大模型 API 成本:10 个马上能用的办法
大模型 API 的费用由模型单价、输入长度、输出长度和调用次数决定。本文按效果从大到小列出 10 个办法,包括选对模型档位、分级路由、上下文缓存、限制输出和给每把 Key 设额度上限,并用实时价格演示能省多少。
大模型 API 的费用 = 调用次数 ×(输入 tokens × 输入单价 + 输出 tokens × 输出单价)。能动的只有三样:模型单价、每次的 tokens 数、调用次数。下面 10 个办法按效果大致从大到小排列。前两个(选对模型、分级路由)一般省得最多,其次是控制输入,再次是控制输出。
1. 选对模型档位
| 模型 | 厂商 | 最低价分组 | 输入 ¥/百万 | 输出 ¥/百万 | 按次 ¥/次 |
|---|---|---|---|---|---|
| gpt-5.5 | OpenAI | 标准 | ¥10 | ¥80 | — |
| gpt-5.4-mini | OpenAI | 标准 | ¥1.5 | ¥9 | — |
| gpt-4o-mini | OpenAI | 标准 | ¥0.3 | ¥1.2 | — |
价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
同一家厂商的旗舰模型和小模型,单价可能差几十倍。先用小模型跑一遍评测,正确率够就不往上换。评测方法见如何为业务选模型。
2. 分级路由:难的问题才交给大模型
先让便宜的模型判断问题的类型或难度,简单的直接回答,只把少数复杂问题转给大模型。假设每月 10 万次请求,每次输入 2,000 tokens、输出 400 tokens。
全部用旗舰模型:
成本估算 · gpt-5.5 (标准)
- 单价
- 输入 ¥10 / 输出 ¥80(每百万 tokens)
- 每次用量
- 输入 2,000 tokens,输出 400 tokens
- 请求次数
- 100,000
- 单次费用
- ¥0.052
合计约 ¥5,200价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
八成请求交给小模型:
成本估算 · gpt-5.4-mini (标准)
- 单价
- 输入 ¥1.5 / 输出 ¥9(每百万 tokens)
- 每次用量
- 输入 2,000 tokens,输出 400 tokens
- 请求次数
- 80,000
- 单次费用
- ¥0.0066
合计约 ¥528价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
剩下两成用旗舰模型:
成本估算 · gpt-5.5 (标准)
- 单价
- 输入 ¥10 / 输出 ¥80(每百万 tokens)
- 每次用量
- 输入 2,000 tokens,输出 400 tokens
- 请求次数
- 20,000
- 单次费用
- ¥0.052
合计约 ¥1,040价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
后两项加起来就是路由之后的费用。判断难度这一步也要花钱,用最便宜的模型、只让它输出一个类别就够了。
3. 精简提示词
系统提示词每次请求都要发一遍。删掉重复的说明、过多的示例和客套话,省下几百 tokens,乘上每月几十万次调用也不少。
4. 限制输出长度
- 设置
max_tokens,推理模型用max_completion_tokens。 - 在提示词里写清格式和字数,比如「只输出 JSON」「不超过 100 字」。
- 推理模型可以用
reasoning_effort调低思考强度,仅部分模型支持。
输出单价通常比输入高好几倍。同样每月 10 万次、每次输入 2,000 tokens,回答 800 tokens:
成本估算 · deepseek-v4.1-flash (国产模型)
- 单价
- 输入 ¥2.8 / 输出 ¥11.2(每百万 tokens)
- 每次用量
- 输入 2,000 tokens,输出 800 tokens
- 请求次数
- 100,000
- 单次费用
- ¥0.0146
合计约 ¥1,456价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
回答压到 300 tokens:
成本估算 · deepseek-v4.1-flash (国产模型)
- 单价
- 输入 ¥2.8 / 输出 ¥11.2(每百万 tokens)
- 每次用量
- 输入 2,000 tokens,输出 300 tokens
- 请求次数
- 100,000
- 单次费用
- ¥0.00896
合计约 ¥896价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
5. 用上下文缓存
把不变的系统提示词和资料放在最前面,支持缓存的模型命中后按缓存读取价计费,通常比普通输入便宜得多。做法和能省多少见上下文缓存是什么、怎么省钱。
6. 裁剪对话历史
多轮对话每次都要把历史带上,聊到第 20 轮时,一次请求的输入可能是第 1 轮的十几倍。只保留最近几轮,更早的内容让小模型压缩成一段摘要。
7. 选价格合适的分组
同一个模型在不同分组价格不同。开发测试和失败能重试的批量任务用最低价分组,线上服务再用官方或云厂商分组,见如何选分组。
8. 多条数据合并成一次请求
处理大量短文本时,比如给商品标题分类,可以把 20 条左右放进一次请求,让模型按顺序返回 JSON 数组。系统提示词只发一次,总 tokens 少很多。一次别塞太多,条数多了模型容易漏,返回后要校验数量。
import json
import os
from openai import OpenAI
client = OpenAI(base_url="https://open.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"])
titles = ["男士纯棉短袖 T 恤", "不锈钢保温杯 500ml", "儿童防滑运动鞋"] # 实际每批 20 条左右
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "给每个商品标题分配一个类目:服装、家居、鞋靴、其他。按输入顺序输出 JSON 数组,只输出数组。"},
{"role": "user", "content": json.dumps(titles, ensure_ascii=False)},
],
)
labels = json.loads(resp.choices[0].message.content)
assert len(labels) == len(titles), "条数不一致,这一批重跑"9. 每把 Key 设额度上限和模型白名单
程序死循环、Key 泄露,都可能在很短时间里产生大量调用。给每把 Key 设额度上限和过期时间,再用模型白名单限制它只能调业务需要的模型,别人拿到也没法用它去调昂贵的模型。具体做法见API Key 安全最佳实践。
10. 定期看用量明细
每周看一次控制台「用量明细」,按模型、按 Key 看费用分布,找出花钱最多的调用再针对性优化。新功能上线后的头几天尤其要看。
汇总
| 办法 | 省在哪里 | 改动量 |
|---|---|---|
| 选对模型档位 | 单价 | 改 model 参数,先做评测 |
| 分级路由 | 单价 | 加一层判断逻辑 |
| 精简提示词 | 输入 tokens | 改提示词 |
| 限制输出长度 | 输出 tokens | 加参数、改提示词 |
| 上下文缓存 | 输入单价 | 调整提示词顺序 |
| 裁剪对话历史 | 输入 tokens | 改会话管理逻辑 |
| 选合适的分组 | 单价 | 换一把 Key |
| 合并请求 | 输入 tokens | 改调用方式 |
| 额度上限与白名单 | 防止意外消耗 | 控制台里设置 |
| 看用量明细 | 找到最该优化的地方 | 每周看一次 |
计费规则见大模型 API 价格怎么算。
常见问题
哪个办法省得最多?
通常是选对模型档位。不同档位的单价可能相差几十倍,先用便宜的模型评测,够用就不往上换,这一项的效果一般最明显。
限制 max_tokens 会影响回答质量吗?
设得太小会把回答截断,响应里的 finish_reason 会是 length。按实际需要的长度留出余量,再在提示词里要求回答简洁,效果更好。
怎么防止 Key 泄露或程序出错造成大额消费?
给每把 Key 设额度上限和过期时间,开启 IP 白名单和模型白名单。即使出了问题,损失也被限制在一把 Key 的额度之内。
有包月套餐或月费吗?
没有月费,按实际用量计费。企业采购、对公付款可以加客服微信 JsnonoChat 详谈。