API成本:被低估的运营支出

很多团队在开发阶段忽略了API成本,上线后才发现每月LLM调用费用远超预期。一个处理10万请求/天的应用,如果每个请求平均消耗2000 tokens,用GPT-4月成本超过10万美元。成本优化不是可选项,是生存必需。

成本结构分析

Token计费模型

成本 = 输入tokens × 输入单价 + 输出tokens × 输出单价

以GPT-4o为例(2026年价格):
  输入: $2.5/1M tokens
  输出: $10/1M tokens

单次对话(输入500, 输出300):
  = 500×2.5/1M + 300×10/1M
  = $0.00125 + $0.003
  = $0.00425/次

成本分解

典型Agent应用的token消耗分布:

  • 系统Prompt: 15-25%(固定开销)
  • 上下文/历史: 30-50%(随对话长度增长)
  • 用户输入: 5-10%
  • 模型输出: 10-20%
  • 工具结果: 10-20%

最大成本项是"上下文/历史"——长对话的累积上下文。

优化策略一:模型路由

分层路由

根据任务复杂度选择不同模型:

def route_model(query, budget_tracker):
    complexity = classify_complexity(query)
    
    if complexity == "simple":
        # 简单问答、格式转换 → 小模型
        return "qwen-2-7b"  # $0.0005/次
    
    elif complexity == "medium":
        # 中等推理、分析 → 中等模型
        return "deepseek-v4"  # $0.002/次
    
    elif complexity == "complex":
        # 复杂推理、创意 → 大模型
        return "gpt-4o"  # $0.004/次
    
    elif complexity == "expert":
        # 极高难度 → 最强模型
        return "o3"  # $0.02/次

复杂度分类器

用小模型或规则做路由决策:

def classify_complexity(query):
    # 规则1: 长度
    if len(query) < 20:
        return "simple"
    
    # 规则2: 关键词
    if any(kw in query for kw in ["分析", "对比", "推理", "证明"]):
        return "medium"
    
    if any(kw in query for kw in ["架构设计", "策略制定", "深度分析"]):
        return "complex"
    
    # 规则3: 用小模型分类
    return small_model.classify(query)

路由效果

假设80%的请求是简单任务:

  • 全用GPT-4o: $0.004 × 100% = $0.004/次
  • 分层路由: $0.0005×80% + $0.002×15% + $0.004×4% + $0.02×1% = $0.0011/次
  • 成本降低73%

级联路由

先尝试小模型,失败再用大模型:

def cascade(query):
    # 先用小模型尝试
    result = small_model.generate(query)
    
    # 评估结果质量
    if confidence(result) > threshold:
        return result  # 小模型够用
    
    # 不够好,用大模型
    return large_model.generate(query)

优化策略二:Prompt压缩

系统Prompt精简

原始系统Prompt (2000 tokens):
"你是一个专业的客服助手。你的职责是帮助用户解决订单相关问题。
你需要遵循以下规则:
1. 始终保持礼貌和耐心
2. 如果用户的问题超出你的能力范围,转接人工
3. 不要透露内部系统信息
..."

精简后 (500 tokens):
"你是客服助手。规则:礼貌、保密、转人工处理超范围问题。"

上下文压缩

  • 对话摘要:用小模型定期摘要历史对话
  • 信息提取:只保留结构化关键信息,丢弃原始对话
  • 语义去重:删除重复的上下文内容

Few-Shot精简

3-shot到1-shot可能只损失5%效果但省50% token。

优化策略三:缓存

精确匹配缓存

cache = Redis()

def cached_generate(prompt, model="gpt-4o"):
    cache_key = f"{model}:{hash(prompt)}"
    
    if cached := cache.get(cache_key):
        return cached
    
    result = llm.generate(prompt, model)
    cache.set(cache_key, result, ttl=3600)
    return result

语义缓存

相似问题命中缓存:

def semantic_cache_generate(query):
    # 向量化query
    query_embedding = embed(query)
    
    # 搜索相似query
    similar = vector_db.search(query_embedding, threshold=0.95)
    
    if similar:
        return similar.answer
    
    # 未命中,调用LLM
    answer = llm.generate(query)
    
    # 存入缓存
    vector_db.add(query_embedding, answer)
    return answer

缓存效果

  • 精确匹配:命中率10-15%(重复请求)
  • 语义缓存:命中率25-40%(相似请求)
  • 综合缓存可节省30-50%的API调用

优化策略四:批处理

请求合并

多个独立请求合并为一次调用:

# 不好的做法:5次API调用
for question in questions:
    answer = llm.generate(question)  # 5次调用

# 好的做法:1次API调用
combined = f"回答以下问题,每个问题用编号标注:\n"
for i, q in enumerate(questions):
    combined += f"{i}. {q}\n"
answers = llm.generate(combined)  # 1次调用

批量推理

自部署模型时使用vLLM的continuous batching:

  • 多个请求共享一次forward计算
  • 吞吐量提升5-10倍
  • 每请求成本大幅下降

优化策略五:混合部署

自部署+API混合

路由策略:
- 高频简单任务 → 自部署小模型 (固定成本)
- 低频复杂任务 → API调用大模型 (按需付费)

成本模型:
  自部署: 固定成本$2000/月 (GPU租用)
  API: 变动成本 ~$0.002/次

  当月请求量 > 100万次时:
    全API: $2000+
    混合: $2000 (自部署) + $200 (复杂任务API) = $2200
    优势不明显

  当月请求量 > 500万次时:
    全API: $10000+
    混合: $2000 + $1000 = $3000
    节省70%

成本监控

class CostMonitor:
    def __init__(self, budget_monthly):
        self.budget = budget_monthly
        self.spent = 0
    
    def record(self, cost):
        self.spent += cost
        if self.spent > self.budget * 0.8:
            alert("已达月预算80%")
        if self.spent > self.budget * 0.95:
            alert("接近月预算,切换到降级模式")
    
    def get_stats(self):
        return {
            "spent": self.spent,
            "budget": self.budget,
            "remaining": self.budget - self.spent,
            "daily_avg": self.spent / day_of_month
        }

成本对比

不同方案成本对比(10万请求/天)

方案月成本质量
全用GPT-4o$12,750最高
全用DeepSeek-V4$1,500
模型路由$3,200
路由+缓存$2,100
自部署7B$1,000 (GPU)
混合部署$2,200

总结

大模型API成本优化是一个系统工程——不是单纯选便宜模型,而是在质量、速度、成本三者间找最优平衡。核心策略:模型路由让"好钢用在刀刃上",缓存避免重复计算,Prompt压缩减少浪费,混合部署兼顾灵活性和经济性。对于规模化应用,成本优化通常能降低60-80%的LLM调用费用——这可能是技术开发者最容易创造价值的工作之一。