大多数团队在 AI API 调用上支付了过高的费用。这并不是因为他们选错了模型,而是因为他们忽略了三个只需极少量代码修改即可实现的优化:提示词缓存(Prompt Caching)、智能模型路由(Smart Model Routing)和批量处理(Batch Processing)。
以下是每种技术的详细分析及实际数据,以及真正能节省资金(而非仅仅转移支出)的实施顺序。
如果您还在纠结当前使用的供应商组合是否是问题的根源,请先阅读定价对比。如果您的最大痛点是重试风暴或供应商限流,而非纯粹的支出问题,请将此页面与速率限制指南结合使用。
核心要点
- 提示词缓存是最大的单一收益点,当系统提示词前缀在各请求间保持稳定时,可降低 40-75% 的输入成本。
- 智能模型路由将低难度任务发送至廉价模型,通常可在不损失质量的情况下整体节省 30-50% 的费用。
- Batch API 为非紧急、异步的工作负载(如夜间任务和批量标注)提供约 50% 的折扣。
- 价格和模型阵容变动频繁。在锁定路由表之前,请对照 OpenAI 定价页面(观察日期 2026-07-07)和 TokenLab 模型目录(观察日期 2026-07-07)核对当前数据。
- 在优化前先增加成本可见性:记录路由、模型、Token 数、缓存命中率和重试次数,以便基于数据而非直觉进行优化。
1. 提示词缓存:最大的收益点
如果您的应用程序在每次请求时都发送相同的系统提示词,那么您就在为供应商已经处理过的 Token 支付全额费用。
工作原理
根据 OpenAI 定价页面(观察日期 2026-07-07),OpenAI 会自动缓存超过 1,024 个 Token 的输入,且缓存的 Token 费用相对于标准输入有折扣。您无需更改任何代码即可获得此项收益。
Anthropic 通过 cache_control 断点使用显式缓存。写入缓存的成本高于标准输入,但读取缓存的成本要低得多。缓存 TTL 为 5 分钟,每次命中后会延长。
由于缓存定价会随模型代际变化,请将任何具体的折扣百分比视为快照,而非永久规则。在将节省预测写入预算文档之前,请务必查看供应商当前的定价页面。
数学计算
以一个典型的客户支持机器人为例:
- 系统提示词:2,000 Token
- 用户消息:平均 200 Token
- 每天 5,000 次请求,使用中端推理模型
不使用缓存:
每日输入成本 = 5,000 × 2,200 Token × $3.00/1M = $33.00
使用提示词缓存(假设 95% 的缓存命中率):
缓存写入:250 × 2,200 × $3.75/1M = $2.06
缓存读取:4,750 × 2,200 × $0.30/1M = $3.14
用户 Token:5,000 × 200 × $3.00/1M = $3.00
每日总计 = $8.20(输入成本节省约 75%)
这些数字仅供参考。请从供应商当前的定价页面和 TokenLab 模型目录(观察日期 2026-07-07)获取您自己的数据,因为 OpenAI 和 Anthropic 模型系列的费率调整时间表各不相同。
实现方式
from anthropic import Anthropic
client = Anthropic(
api_key="sk-tokenlab-xxx",
base_url="https://api.tokenlab.sh"
)
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system=[
{
"type": "text",
"text": "You are a customer support agent for Acme Corp...",
"cache_control": {"type": "ephemeral"} # 启用缓存
}
],
messages=[{"role": "user", "content": user_message}]
)
# 在响应头中检查缓存性能
# cache_creation_input_tokens vs cache_read_input_tokens
对于 OpenAI 模型,缓存是自动的。只需确保您的提示词超过 1,024 个 Token,并保持静态前缀在各请求间的一致性即可。
团队容易犯的错误:
- 在每个提示词的开头放置时间戳或请求 ID
- 在每次调用时重新排序系统指令
- 在稳定前缀之前嵌入可变的用户上下文
如果前缀每次都变,缓存就永远无法发挥作用。请将提示词结构视为一种成本要素,而不仅仅是提示词工程的细节。
2. 智能模型路由:为每项任务使用合适的模型
并非每个请求都需要最昂贵的模型。一个像 GPT-5.5 或 Claude Opus 4.8 这样每百万输入 Token 需要数美元的旗舰模型能处理的分类任务,通常在同一系列的较小模型,或者像 DeepSeek V4 Flash 或 Gemini 3.5 Flash 这样的低成本模型上也能达到同样的效果,且成本仅为一小部分。
路由策略
| 任务类型 | 推荐模型层级 | 备注 |
|---|---|---|
| 复杂推理 | 旗舰推理模型(如 GPT-5.5, Claude Opus 4.8) | 成本最高,留给困难情况 |
| 通用聊天 | 中端聊天模型(如 Claude Sonnet 5) | 大多数对话的良好平衡点 |
| 分类、提取 | 低成本模型层级(如 DeepSeek V4 Flash, Gemini 3.5 Flash) | 通常比旗舰模型便宜 5-10 倍 |
| 嵌入(Embeddings) | 小型嵌入模型 | 迄今为止单 Token 成本最低 |
| 简单格式化 | 预算开源权重模型(如 DeepSeek V4 Flash, GLM-5.2) | 适用于高频、低风险任务 |
各供应商的精确单 Token 价格变动频繁,因此不要将定价表硬编码到应用逻辑中。在最终确定路由配置之前,请从 OpenAI 定价页面(观察日期 2026-07-07)获取当前费率,或查看 TokenLab 模型目录(观察日期 2026-07-07)上的多供应商列表。
实现方式
from openai import OpenAI
client = OpenAI(
api_key="sk-tokenlab-xxx",
base_url="https://api.tokenlab.sh/v1"
)
def route_request(task_type: str, messages: list) -> str:
"""选择能很好处理此任务的最廉价模型。"""
model_map = {
"classification": "deepseek-v4-flash",
"extraction": "deepseek-v4-flash",
"summarization": "deepseek-v4-flash",
"complex_reasoning": "gpt-5.5",
"creative_writing": "claude-sonnet-5",
"code_generation": "claude-sonnet-5",
}
model = model_map.get(task_type, "deepseek-v4-flash")
response = client.chat.completions.create(
model=model,
messages=messages
)
return response.choices[0].message.content
在部署前,请对照 TokenLab 模型目录(观察日期 2026-07-07)核实这些模型标识符,因为随着供应商发布新版本,精确的模型 ID 和低成本层级会发生变化。
实际节省
一个将 60% 的请求(Linting、格式化、简单补全)路由到低成本模型,将 40% 的请求(架构、调试)路由到中端模型(如 Claude Sonnet 5)的编码助手:
之前(全部使用中端模型):
1,000 次请求/天 × 3K 输入 × $3.00/1M = $9.00/天
之后(60/40 分流):
600 次请求 × 3K × $0.40/1M = $0.72/天(低成本模型)
400 次请求 × 3K × $3.00/1M = $3.60/天(中端模型)
总计 = $4.32/天(节省 52%)
分流比例比具体的模型名称更重要。即使基础价格点发生变动,只要低成本层级确实能满足您的任务质量要求,设计良好的 60/40 或 70/30 路由分流依然能捕获大部分节省空间。
3. 批量处理:隔夜折扣
如果工作负载不需要秒级响应,那么它就不应该支付实时价格。OpenAI、Anthropic 和多家开源权重提供商提供异步处理请求的批量端点,通常在 24 小时内完成,成本约为同步调用的半价。
适合批量处理的任务:
- 夜间摘要或标记作业
- 大规模数据标注和增强
- 为新语料库回填嵌入
- 为内部使用生成训练或评估数据
不适合批量处理的任务:用户在实时会话中等待的任何内容。批量处理是一种延迟权衡,而非质量权衡,因此不要将其应用于用户期望立即回复的请求路径。
4. Token 缩减:路由前先精简
在进行任何路由之前,请检查您发送的 Token 是否超过了任务所需。常见的浪费来源:
- 冗长的系统提示词,重复了模型已经能可靠遵循的指令
- 每次轮询都发送完整的对话历史,而不是滚动摘要
- 过大的少样本(few-shot)示例,可以精简或替换为更短的参考
- 原始工具输出(日志、JSON 块、HTML)未经过滤直接粘贴,而非预先解析
Token 缩减工作量小,且能与缓存和路由叠加,而非相互竞争。请先执行此步骤,因为它降低了您优化其他一切的基础基数。
5. 操作顺序
这些技术是复合的,但应用顺序决定了您的节省程度和承担的风险:
- 首先精简 Token 并稳定提示词前缀,以便缓存能真正命中。
- 将分类、提取和简短摘要路由到更便宜的模型层级,如 DeepSeek V4 Flash 或 Gemini 3.5 Flash。
- 将高级模型保留用于升级、复杂推理或最终答案合成。
- 将隔夜摘要和回填任务推送到批量处理。
- 每周审查日志,查找提示词结构发生漂移并导致缓存效率降低的路由。
这种推广方式不需要重写代码。它只需要一周的仪表化工作,以及将提示词和路由视为生产环境组件的意愿。
6. 不该做的事
浪费成本优化努力的最快方法就是优化错误的对象。
避免以下陷阱:
- 在测量提示词浪费之前更换供应商
- 在未验证输出质量的情况下将廉价任务路由到廉价模型
- 在每次请求前缀都会改变的提示词上启用缓存
- 对确实需要实时响应的用户交互工作进行批量处理
- 只看 Token 价格而忽略重试、延迟和回退开销
成本工作成功的标志是:在节省费用后,产品依然表现良好。如果用户体验变差,那么电子表格上的胜利就是虚假的。
常见问题解答
将 AI API 成本降低 30% 会损害输出质量吗? 如果顺序正确,则不会。移除 Token 浪费和修复缓存对质量没有影响,因为模型收到的有效指令是一样的。模型路由如果将任务路由到无法处理该任务的层级,则存在一定风险,因此在广泛推广路由更改之前,请先在样本上验证输出质量。批量处理对质量没有影响,只有延迟权衡。
我需要更换供应商来降低成本吗? 通常不需要首先这样做。大多数团队在提示词结构、缓存和路由上发现的节省空间比更换供应商更多。如果您已经应用了这三种技术但仍然支付过高,那么使用类似 TokenLab 模型目录(观察日期 2026-07-07)的资源比较各供应商费率是值得的,该目录在一个地方列出了许多模型的当前定价,包括 GPT-5.5、Claude Sonnet 5 以及像 GLM-5.2 和 DeepSeek V4 Flash 这样的开源权重选项。
我如何知道提示词缓存是否真的在工作? 检查每次调用的响应元数据。OpenAI 和 Anthropic 都会返回与缓存相关的 Token 计数(根据 SDK 不同,字段名为 cache_creation_input_tokens、cache_read_input_tokens 或类似字段)。如果数千次请求中缓存读取次数始终接近于零,那么您的前缀很可能在调用间发生了变化,这通常是由于时间戳、请求 ID 或位于提示词稳定部分之前的重新排序指令导致的。
总结
| 技术 | 工作量 | 典型节省 |
|---|---|---|
| 提示词缓存 | 低(添加 cache_control) | 输入成本的 40-75% |
| 模型路由 | 中(分类任务) | 整体 30-50% |
| 批量处理 | 中(异步工作流) | 批量作业的 50% |
| Token 缩减 | 低(精简提示词) | 输入成本的 10-30% |
这些技术是复合的。一个实施了所有四项技术的团队,完全可以将每月的 API 账单从几千美元削减到一半以下,且不会降低输出质量。具体的节省取决于您的流量组合和当前供应商,因此请将这些范围视为初步估算而非保证。在最终确定预算预测之前,请务必在 OpenAI 定价页面或 TokenLab 模型目录上核实您所路由到的任何模型的当前定价。
核心洞察:AI API 的成本优化不是首先寻找更便宜的供应商。而是为每个特定任务使用正确的模型、正确的价格层级和正确的缓存策略。供应商对比是最后一步,而不是第一步。
如果您已经在使用多个供应商,运营层面也很重要。迁移指南和 OpenRouter 对比有助于决定何时该集中化路由,而不是继续修补分散的集成。
立即开始:TokenLab 让您通过一个 API Key 即可访问 300 多个模型,包括 GPT-5.5、Claude Sonnet 5 以及像 DeepSeek V4 Flash 和 GLM-5.2 这样的开源权重选项,并支持 OpenAI 和 Anthropic 模型系列的提示词缓存,同时提供一个统一的地方来比较它们的使用量和定价。
来源
价格观测于 2026-07-07
- TokenLab model directory观测于 2026-07-07
- OpenAI API pricing观测于 2026-07-07



