LLM API 成本优化实战:Prompt Caching、模型路由与 Token 压缩指南

大模型 API 调用成本占 AI 应用运营费用的 60%-80%。本文深入解析 Prompt Caching、模型路由、Token 压缩三大成本优化策略,附完整代码实现与性能对比数据,助你将 LLM API 成本降低 50%-90%。

开发者效率 2026-05-30 12 分钟

根据 a16z 2026 年 Q1 的调研报告,LLM API 调用成本已占 AI 应用总运营成本的 60%-80%。一个日活 10 万的 RAG 应用,如果未做成本优化,每月 OpenAI API 账单轻松突破 $15,000。但做得好的团队能把同样的业务跑在 $2,000 以内——差距不在模型选择,而在工程化的成本优化策略。本文直接给你三种经过生产验证的优化手段,每种都有完整的代码实现和真实成本对比数据。

💰 一、Prompt Caching:降低 90% 重复计算

1.1 缓存机制对比

在典型的 RAG 应用中,System Prompt + 工具定义通常占总 Token 的 60%-80%,且在绝大多数请求中完全相同。Prompt Caching 机制可以复用这部分计算:

提供商缓存折扣最小缓存长度生效延迟
Anthropic (Claude)输入价降至 10%1024 tokens即时
OpenAI (GPT-4o)输入价降至 50%1024 tokens即时
DeepSeekCache Hit 降至 10%64 tokens约 30 秒
Google (Gemini)手动缓存,约 25%32768 tokens约 5 分钟

⚠️ 警告:缓存命中的关键是前缀一致性。如果在 System Prompt 中动态插入时间或用户 ID,缓存会失效。务必把动态内容放在请求末尾。

1.2 优化 Prompt 结构

❌ **错误写法:**动态内容放在 System Prompt 开头

// ❌ 每次时间不同,缓存永远不命中
const systemPrompt = `当前时间:${new Date().toISOString()}
你是客服助手。请根据知识库回答问题。`;

✅ **正确写法:**静态前缀 + 动态后置

// ✅ 静态部分在前,缓存命中率极高
const staticPrompt = '你是客服助手。请根据知识库回答问题。';
const response = await anthropic.messages.create({
  model: 'claude-sonnet-4-20250514',
  system: staticPrompt,  // 稳定前缀
  messages: [{ role: 'user', content: `[时间:${new Date()}] ${query}` }]
});

1.3 Gemini Context Caching

Gemini 的缓存需要显式创建,适合 System Prompt 超长的场景:

// 创建缓存(一次创建,多次复用)
const cache = await genAI.caching.create({
  model: 'models/gemini-1.5-pro',
  contents: [{ role: 'user', parts: [{ text: longKnowledgeBase }] }],
  ttlSeconds: 3600
});
// 用缓存 ID 发起请求
const cachedModel = genAI.getGenerativeModel({
  model: 'gemini-1.5-pro',
  cachedContent: cache.name
});

💡 **提示:**当 System Prompt 包含数万字产品文档时,Gemini Context Caching 可将成本降低 75% 以上。

1.4 成本实测

以 System Prompt 4000 Token、问题 200 Token、Claude Sonnet 为例,日 10 万次调用:

场景单次成本月成本节省
无缓存$0.0126$37,800—
Anthropic 缓存命中$0.0044$13,20065%
Gemini 缓存命中$0.0032$9,60075%

⚡ **关键结论:**仅优化 Prompt 结构,月成本从 $37,800 降至 $9,600,投入产出比最高的优化手段。

🔀 二、模型路由:小模型做小事,省 80% 成本

2.1 请求复杂度分布

实际应用中 60%-80% 的请求是简单的提取、翻译、格式化任务,不需要最强模型:

请求类型占比推荐模型成本 vs GPT-4o
简单提取/格式化40%GPT-4o-mini / Haiku1/20
中等推理/总结35%GPT-4o / Sonnet1x
复杂推理/代码25%Sonnet / o35-10x

2.2 基于规则的快速路由

高 QPS 场景下,分类器本身也有成本。用规则覆盖明确场景,零额外开销:

// 基于规则的模型路由(零额外成本)
const COMPLEXITY_RULES = {
  simple: [/^(翻译|convert|format|格式化|提取)/i, /^.{0,50}$/],
  complex: [/(分析|analyze|架构|实现|优化)/i, /^.{300,}$/]
};

function selectModel(query: string): string {
  if (COMPLEXITY_RULES.simple.some(p => p.test(query)))
    return 'claude-haiku-4-20250414';
  if (COMPLEXITY_RULES.complex.some(p => p.test(query)))
    return 'claude-sonnet-4-20250514';
  return 'claude-sonnet-4-20250514';  // 默认
}

2.3 分类器路由(模糊场景)

规则无法覆盖的 30% 模糊场景,用小模型做分类:

async function classifyComplexity(query: string): Promise<string> {
  const res = await client.messages.create({
    model: 'claude-haiku-4-20250414',  // 最便宜的模型做分类
    max_tokens: 10,
    messages: [{ role: 'user', content: `分类为 simple/medium/complex:${query}` }]
  });
  return res.content[0].text.trim();
}

💡 **提示:**建议规则覆盖 70% 明确场景,分类器处理 30% 模糊场景。分类器调用量只有总量的 30%,成本几乎可忽略。

2.4 路由 + 缓存组合成本

日 10 万次请求(简单 40%、中等 35%、复杂 25%):

方案月成本节省
全部 GPT-4o$30,000基准
智能路由$7,50075%
路由 + Prompt 缓存$3,00090%

⚡ **关键结论:**模型路由 + Prompt Caching 组合,月成本从 $30,000 降至 $3,000,降幅 90%。

📦 三、Token 压缩:从输入端减少浪费

3.1 Re-ranking:只保留最相关的 Top-K

RAG 检索到 5-10 个文档片段,但通常只有 2-3 个对回答有帮助。用重排序过滤掉无关内容:

// 使用 Cohere Rerank API 过滤低相关文档
async function rerank(query: string, docs: string[], topK = 3) {
  const res = await fetch('https://api.cohere.ai/v1/rerank', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${COHERE_API_KEY}` },
    body: JSON.stringify({
      model: 'rerank-v3.5', query, documents: docs, top_n: topK
    })
  });
  return (await res.json()).results;
}

3.2 Map-Reduce 摘要压缩

对长文档做并行压缩,只保留与问题相关的关键信息:

// 用小模型并行压缩每个文档
const summaries = await Promise.all(
  documents.map(doc => client.messages.create({
    model: 'claude-haiku-4-20250414',
    max_tokens: 200,
    messages: [{ role: 'user', content: `提取与"${query}"相关的关键信息:\n${doc}` }]
  }))
);

3.3 压缩效果对比

策略原始 Token压缩后压缩率质量损失
Re-ranking (Top-5→3)5000300040%< 2%
Map-Reduce 摘要500080084%5-10%
结构化输出80030062%< 1%

⚠️ **警告:**Map-Reduce 摘要压缩率最高,但有信息损失风险。精确问答场景(法律、医疗)建议只用 Re-ranking。

📊 四、四大策略总览

策略难度节省适用场景质量影响
Prompt Caching⭐ 低65-75%所有场景无
模型路由⭐⭐ 中50-80%多种请求类型极小
Token 压缩⭐⭐ 中40-60%RAG、长文档5-10%
批处理 API⭐ 低50%离线/异步任务无

🎯 总结

实施路线图:

  1. **第 1 天:**优化 Prompt 结构,静态内容在前——立即获得 65%+ 缓存命中率
  2. **第 3 天:**实现基于规则的模型路由——覆盖 70% 明确场景
  3. **第 2 周:**接入 Re-ranking 和 Token 压缩——减少 RAG 输入浪费
  4. **按需:**离线任务用批处理 API,高重复场景接语义缓存

📌 **记住:**不要一次性实现所有优化。从 Prompt Caching 开始——实施最简单、效果最显著、风险最低。逐步叠加其他策略,每次用 A/B 测试验证质量没有下降。

相关工具推荐:

  • ✅ LangSmith — LLM 可观测平台,追踪 Token 用量和成本
  • ✅ Helicone — 开源 LLM 代理,内置成本分析和缓存
  • ✅ Portkey — LLM API Gateway,多模型路由和成本监控
  • ✅ Anthropic Console — 官方仪表盘,查看缓存命中率

📚 相关文章