如何控制AI调用成本

当你看到用户增长 300% 的同时利润腰斩,多半问题出在 AI 调用成本上。Token 费用在规模化之后会迅速吞噬毛利,很多团队在产品上线初期忽略这一点,等到账单数字变得刺眼才开始认真对待。

这篇文章系统梳理 AI 调用成本的构成、模型选择、缓存策略、Prompt 优化和监控告警五个维度,目标是把 LLM 支出从「不可控的隐性成本」变成「可衡量、可干预的产品指标」。


成本构成分析

LLM API 的计费逻辑并不复杂:按 Token 数量收费,输入和输出分开计价。但实际成本由多个因素叠加,远比「每百万 Token 多少钱」复杂。

Token 成本的构成

一次 API 调用的成本 = 输入 Token × 输入单价 + 输出 Token × 输出单价。看起来简单,但几个细节容易忽略:

  • 输出 Token 通常比输入 Token 贵 3~5 倍。生成内容的计算成本远高于理解内容,这意味着「让模型说多少话」比「给模型看多少内容」对成本影响更大。
  • 不同模型的价格差异可达 100 倍以上。以 2025~2026 年的市场行情为例,GPT-4.1 Nano 的输入价格约 $0.10/MTok,而 Claude Opus 4 的输入价格约 $15/MTok,差距显著。
  • 系统 Prompt 也计入输入 Token。很多人只看用户消息的长度,忽略了每轮都发送的系统指令、Few-shot 示例和上下文窗口里累积的历史消息。

成本放大的常见原因

成本因素典型表现影响程度
模型选择不当简单任务使用旗舰模型成本可高出 10~100 倍
Prompt 臃肿系统指令重复、上下文过长每次调用多花 30%~50%
缺乏缓存相同或相似问题反复调用无效调用占总量 40%~60%
输出过长模型生成大量冗余内容输出 Token 成本放大 3~5 倍
调用频率失控无速率限制、无预算上限突发流量导致成本飙升
缺少降级策略高端模型不可用时直接报错重试重复调用叠加

理解成本构成是控制成本的第一步。接下来的核心思路是:在正确的时间、用正确的模型、处理正确的请求,并避免不必要的调用。


模型选择策略

模型选择是成本控制杠杆最大的一环。选错模型,后面所有优化都事倍功半。

按场景分级

不是所有任务都需要最强的模型。一个经验法则:把任务分成三档,分别匹配不同能力层级的模型。

任务类型示例推荐模型层级典型模型
简单任务分类、实体提取、格式转换、关键词匹配轻量模型GPT-4.1 Nano、Claude Haiku、Gemini Flash
中等任务摘要、翻译、常规问答、数据提取中等模型GPT-4.1 Mini、Claude Sonnet、Gemini Pro
复杂任务深度推理、创意写作、多步骤规划旗舰模型GPT-4.1、Claude Opus、o3

模型路由的实现

模型路由的核心逻辑是根据请求特征自动选择模型。一个典型的实现思路:

// 根据任务复杂度路由到不同模型
function selectModel(task: { type: string; complexity: 'low' | 'medium' | 'high' }) {
  const routeMap = {
    low:    'gpt-4.1-nano',     // $0.10/MTok 输入
    medium: 'gpt-4.1-mini',     // $0.40/MTok 输入
    high:   'gpt-4.1',          // $2.00/MTok 输入
  }
  return routeMap[task.complexity]
}

更精细的路由可以结合以下信号:

  • 输入长度:短 Prompt(< 500 Token)大概率是简单任务,用轻量模型即可。
  • 用户意图分类:先用一次低成本调用做意图判断,再路由到合适的模型。
  • 历史成功率:如果某类任务在轻量模型上的成功率低于阈值,自动升级到更高级模型。

据行业实践,合理的模型路由可以降低整体成本 60% 以上,同时在绝大多数任务上保持相近的输出质量。

降级策略

当高端模型不可用(限流、故障、超时)时,降级策略能避免请求直接失败:

  1. 主备模型:主模型超时后自动切换到能力接近的备用模型。
  2. 版本降级:旗舰模型不可用时降级到上一代版本。
  3. 本地兜底:极端情况下用本地小模型或规则引擎返回基础结果,而不是报错。

降级策略的关键是提前定义好降级矩阵,而不是在故障发生时临时决策。


缓存策略

缓存是降低 AI 调用成本最直接的武器。核心原则:能不调 API 就不调。

精确缓存(Exact Cache)

最简单的缓存方式:对完全相同的 Prompt 返回缓存结果。适用于系统 Prompt 固定、用户输入模式重复度高的场景。

  • 优点:实现简单,命中率高。
  • 局限:只能匹配完全一致的输入,对语义相似但措辞不同的请求无效。
  • 适用场景:FAQ 问答、固定格式的数据提取、重复性高的客服场景。

语义缓存(Semantic Cache)

语义缓存通过比较 Prompt 的含义而非文本来实现缓存命中。具体流程:

  1. 将用户输入通过 Embedding 模型转换为向量。
  2. 计算与已缓存向量的余弦相似度。
  3. 如果相似度超过阈值(通常 0.85~0.90),直接返回缓存结果。

语义缓存的效果相当显著:

  • 成本降低 40%~80%,具体取决于业务的重复度。
  • 响应延迟从数秒降至毫秒级,速度提升可达 250 倍
  • FAQ 类场景的缓存命中率通常在 40%~60%

需要注意的是,语义缓存有两个关键参数需要调优:

  • 相似度阈值:设得太低会返回不准确的缓存结果,设得太高则命中率不足。建议从 0.90 开始,根据实际效果逐步下调。
  • 缓存过期时间:根据业务数据的时效性设定。事实性内容(如产品价格)需要短过期,通用知识可以长一些。

Prompt 缓存(Provider-level Caching)

部分模型提供商支持 Prompt 级别的缓存。Anthropic 的 Prompt Caching 对缓存命中的输入 Token 给予 90% 的折扣。OpenAI 也推出了类似机制。

实现要点:

  • 将不变的内容(系统指令、Few-shot 示例)放在 Prompt 前面,标记为可缓存。
  • 将动态内容(用户消息、上下文变量)放在后面。
  • 保持 Prompt 前缀的稳定性,避免频繁变动导致缓存失效。

缓存策略对比

缓存类型匹配方式成本节省实现复杂度适用场景
精确缓存字符串完全匹配高(100% 命中时)固定问答、重复请求
语义缓存向量相似度匹配中高(40%~80%)中高开放式问答、客服
Prompt 缓存提供商前缀缓存中(50%~90%)所有使用固定系统指令的场景
结果缓存业务逻辑层缓存取决于命中率数据提取、翻译

Prompt 优化

Prompt 优化是投入产出比最高的成本控制手段。精简 Prompt 不仅能直接减少 Token 消耗,还能降低模型的理解偏差,减少因质量不佳导致的重试调用。

减少 Token 消耗的核心方法

1. 精简系统指令

很多团队在迭代过程中不断往系统 Prompt 里添加指令,却很少回头清理。一个常见的情况是,系统指令长达数千 Token,其中包含大量重复或过时的约束。

  • 定期审计系统 Prompt,删除冗余和矛盾指令。
  • 用简洁的表述替代冗长的描述。例如「请用中文回答,不要使用英文」可以简化为「回答语言:中文」。
  • 将重复出现的指令抽取为模板变量,避免在每次调用中重复发送。

2. 控制输出长度

输出 Token 比输入贵 3~5 倍,控制输出长度的优先级应该高于控制输入长度。

  • 在 Prompt 中明确要求简洁回答,例如「用 3 句话回答」。
  • 设置 max_tokens 参数限制最大输出长度。
  • 优先要求结构化输出(如 JSON),结构化输出天然更简洁。

3. 管理上下文窗口

多轮对话中,历史消息会累积成大量输入 Token。

  • 不要无脑传递全部历史,只保留最近 N 轮或经过摘要压缩的上下文。
  • 对于长文档处理,使用 RAG(Retrieval-Augmented Generation)只检索相关片段,而不是把整篇文档塞进 Prompt。
  • 定期评估上下文窗口的大小与任务质量的关系,找到平衡点。

4. 使用结构化输出

要求模型返回 JSON 格式而不是自由文本,有两个好处:Token 更少、解析更可靠。结构化输出还能减少因格式错误导致的重试,间接节省成本。

Prompt 优化的效果参考

通过提示工程的度量标准进行优化,通常可以实现 35%~55% 的 LLM 调用成本降低。关键指标包括:

  • 单次调用的平均 Token 数
  • 系统 Prompt 的 Token 长度
  • 输出 Token 与输入 Token 的比值
  • 每次成功交互的成本(而非单纯的每次调用成本)

监控和告警

没有监控就没有优化。如果你看不到钱花在哪里,就无法控制它。

成本仪表盘

一个好的成本仪表盘应该覆盖以下维度:

  • 总体趋势:日/周/月的总成本变化曲线。
  • 按模型拆分:各模型的调用量和成本占比,识别哪个模型是成本大头。
  • 按功能拆分:不同产品功能(如聊天、翻译、摘要)各自消耗了多少成本。
  • 按用户拆分:哪些用户或租户的调用量异常高,帮助识别滥用或低效使用。
  • Token 分布:输入 Token 和输出 Token 的比例,识别输出过长的功能模块。

常用工具包括 Helicone、LangSmith、OpenLlama、Portkey 等,它们提供开箱即用的 LLM 可观测性面板。也可以基于 Prometheus + Grafana 自建,灵活性更高。

阈值告警

设置多层告警阈值,在成本失控的早期就收到通知:

告警级别触发条件示例响应动作
警告(Warning)单日成本超过日均值的 150%通知到 Slack / 邮件,记录日志
严重(Critical)单日成本超过日均值的 300%通知到负责人 + 自动限流
紧急(P0)小时成本超过小时均值的 500%自动熔断 + 电话通知

告警的关键是阈值要基于历史数据动态计算,而不是固定的绝对值。业务量增长后,告警阈值应该同步上调。

异常检测

除了阈值告警,还需要关注以下异常模式:

  • 调用量突增:可能是爬虫、自动化脚本或产品 bug 导致。
  • Token 消耗突增:可能是 Prompt 变更加入了大量上下文,或者模型输出变得异常冗长。
  • 缓存命中率骤降:可能是缓存配置失效或 Prompt 结构发生了意外变更。
  • 单次调用成本飙升:可能是误用了更贵的模型,或者输出 Token 限制被移除。

成本归因

精细化的成本归因能帮助团队做出更明智的决策:

  • 给每次 API 调用打上标签(用户 ID、功能模块、模型名称、环境),让成本可追溯。
  • 建立「每次成功交互成本」指标,而不是只看总支出。如果花了更多钱但成功率也更高,这笔支出可能是值得的。
  • 定期复盘成本趋势,识别持续优化的机会。

实战案例

案例一:SaaS 客服平台的成本优化

一个 B2B SaaS 客服平台,接入 GPT-4 系列模型处理用户咨询。上线初期月均 AI 调用成本约 $12,000,随着客户数增长到 500 家,成本飙升到 $45,000/月,严重压缩利润。

优化措施:

  1. 模型路由:将 70% 的简单 FAQ 查询路由到 GPT-4.1 Nano,只有复杂问题使用 GPT-4.1。
  2. 语义缓存:对客服知识库建立语义缓存,相似度阈值设为 0.88。缓存命中率达到 52%。
  3. Prompt 精简:审计系统 Prompt,从 1,800 Token 压缩到 600 Token,删除冗余指令和过时的 Few-shot 示例。
  4. 输出控制:将客服回复的 max_tokens 从 2,000 降到 500,并在 Prompt 中要求简洁回答。

优化后月均成本降至 $14,000,降幅约 69%,客服满意度评分仅下降 2%(在可接受范围内)。

案例二:内容生成平台的分级策略

一个 AI 写作工具,允许用户生成博客文章、营销文案和社交媒体帖子。初期统一使用 Claude Sonnet,每月 Token 费用约 $8,000。

优化措施:

  1. 任务分级:社交媒体帖子(短内容)路由到 Claude Haiku,博客摘要路由到 GPT-4.1 Mini,长篇创作保留 Claude Sonnet。
  2. 批量处理:将非实时的批量摘要生成任务切换为 Batch API,获得 50% 折扣。
  3. Prompt 缓存:将通用的写作指南和格式要求放在 Prompt 前缀,利用 Anthropic 的 Prompt Caching 节省 90% 的输入 Token 费用。
  4. 成本仪表盘:搭建 Grafana 面板,按用户、功能模块、模型分别展示成本,设置日成本告警。

优化后月均成本降至 $3,200,降幅约 60%。同时因为引入了 Prompt 缓存,平均响应延迟降低了 35%。


AI 成本控制流程

流程图画布 · 115%
Mermaid 流程图加载中...

成本控制检查清单

在上线或优化 AI 功能时,逐项检查以下内容:

  • 是否按任务复杂度进行了模型分级路由
  • 是否为简单任务选择了轻量模型(Nano / Haiku / Flash 级别)
  • 是否实现了语义缓存或精确缓存
  • 是否利用了提供商的 Prompt 缓存机制
  • 系统 Prompt 是否经过精简审计,无冗余指令
  • 是否设置了 max_tokens 限制输出长度
  • 多轮对话是否只传递必要的上下文,而非全部历史
  • 是否搭建了成本仪表盘,按模型/功能/用户维度展示
  • 是否设置了成本告警阈值(至少包含警告和严重两级)
  • 是否实现了降级策略(主模型不可用时的备用方案)
  • 是否对非实时任务使用了 Batch API 获取折扣
  • 是否为每次 API 调用打上了归因标签(用户、功能、模型)
  • 是否定期(至少每月)复盘成本趋势和优化机会
  • 是否测试过 Prompt 压缩工具对 Token 数量的影响

参考资料

  1. 10 Ways To Reduce Your LLM API Costs — DEV Community, 2026
  2. The Technical Guide to Managing LLM Costs — Maxim AI, 2025
  3. Semantic Caching for LLM Apps: Reduce Costs by 40-80% — Percona, 2026
  4. 8 Ways to Reduce LLM API Costs by 80% — TECHSY, 2026
  5. LLM 成本控制:预算即产品功能 — 腾讯云, 2026
  6. AI 成本可视化与控制手册 — 知乎专栏, 2025
  7. How to Monitor Your LLM API Costs and Cut Spending by 90% — Helicone, 2025
  8. AI 应用省钱攻略——降低模型成本的七大策略 — 火山引擎, 2024
  9. Reducing LLM Costs and Latency via Semantic Embedding Caching — arXiv, 2024
  10. Prompt Caching vs Semantic Caching: How to Make AI Agents Faster — Redis, 2025