林逍遥 AI林逍遥 AI
登录
成本优化

成本优化全攻略

·8 分钟阅读

Claude API 按 token 计费。在生产环境中,成本优化直接影响业务可行性。本文是全方位的成本优化指南:从模型选择到 Prompt 工程,从缓存到批量处理,帮你把每一分钱花在刀刃上。

你将学到什么

  • Claude 各模型的定价和适用场景
  • 6 种成本优化技巧
  • 成本监控和预算控制方案
  • 真实场景的成本计算

定价速查

模型输入 (/M token)输出 (/M token)适合场景
Opus 4.6$5$25最复杂的推理和分析
Sonnet 4.6$3$15大多数开发任务(最佳平衡)
Haiku 4.5$1$5分类、摘要、简单任务

关键认知:输出比输入贵 3-5 倍。 控制输出长度是最有效的省钱手段。

优化技巧一:选对模型

不是所有任务都需要最强的模型。

def choose_model(task_complexity):
    """根据任务复杂度选择模型"""
    if task_complexity == "simple":
        return "claude-haiku-4-5"    # 分类、摘要
    elif task_complexity == "moderate":
        return "claude-sonnet-4-6"   # 代码、分析
    else:
        return "claude-opus-4-6"     # 复杂推理

# 示例:意图分类用 Haiku,内容生成用 Sonnet
intent = client.messages.create(
    model="claude-haiku-4-5",    # $1/M 输入
    max_tokens=50,
    messages=[{"role": "user", "content": "用户消息:" + user_msg}]
)

优化技巧二:Prompt Caching(省 90%)

重复的 system prompt 和参考文档,用缓存只需 0.1x 价格。

# 假设 system prompt 是 10K token
# 不用缓存:每次 10K × $3/M = $0.03
# 用缓存:  首次 $0.03,后续 10K × $0.3/M = $0.003(省 90%)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": "你的很长的 system prompt...",
        "cache_control": {"type": "ephemeral"}
    }],
    messages=[{"role": "user", "content": "用户问题"}]
)

# 检查缓存命中
print(f"缓存命中: {response.usage.cache_read_input_tokens}")
print(f"缓存未命中: {response.usage.cache_creation_input_tokens}")

优化技巧三:Batch API(省 50%)

不需要实时响应的任务,用 Batch API 享受 50% 折扣。

# 创建批量请求
batch = client.messages.batches.create(
    requests=[
        {
            "custom_id": "task-001",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 1024,
                "messages": [{"role": "user", "content": "翻译任务1"}]
            }
        },
        {
            "custom_id": "task-002",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 1024,
                "messages": [{"role": "user", "content": "翻译任务2"}]
            }
        }
    ]
)

# Batch 处理在 24 小时内完成,价格是实时 API 的 50%

优化技巧四:控制输出长度

# 在 prompt 中明确限制输出
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=200,  # 硬限制
    messages=[{
        "role": "user",
        "content": "用 3 句话总结这篇文章:..."  # 软限制
    }]
)

优化技巧五:Effort 参数

通过减少推理"努力程度"来降低输出 token 消耗。

# 简单任务用低 effort
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=256,
    thinking={
        "type": "enabled",
        "budget_tokens": 1024,
        "effort": "low"  # 减少思考量
    },
    messages=[{"role": "user", "content": "1+1等于几"}]
)

优化技巧六:精简 Prompt

每多一个 token 的输入都有成本。

# 差:冗长的 prompt(200 tokens)
bad_prompt = """
我想请你帮我做一件事情,就是把下面这段英文文字翻译成中文。
请你尽量保持原文的意思和语气,翻译要通顺自然。
下面是需要翻译的内容:
Hello World
"""

# 好:精简的 prompt(20 tokens)
good_prompt = "翻译成中文:Hello World"

成本计算示例

场景模型输入输出单次成本1万次/月
意图分类Haiku50020$0.0006$6
内容摘要Sonnet5K500$0.0225$225
代码审查Sonnet10K2K$0.06$600
深度分析Opus20K5K$0.225$2,250

实战练习

Tip: 审计你当前的 API 使用并优化。

  1. 记录你最近 10 次 API 调用的 token 用量和成本
  2. 识别哪些调用可以用更便宜的模型
  3. 对高频调用启用 Prompt Caching,对比前后成本

关键要点

Note: 本文核心总结

  • 输出 token 比输入贵 3-5 倍,控制输出是第一优先级
  • Prompt Caching 省 90%,Batch API 省 50%
  • 按任务复杂度选择模型:Haiku → Sonnet → Opus
  • 精简 prompt、限制输出长度是基本功
二维码
微信公众号:lingxiaoyao

关注公众号,获取最新 AI 教程和课程更新

加载评论中...