学习中心/AI 基础入门/Token 计费与成本优化
入门

Token 计费与成本优化

理解 Token 计费原理,掌握 Prompt Caching、Batch API 等省钱技巧

Inkess20 min

学习笔记

Token 计费与成本优化

什么是 Token

Token 是 AI 模型处理文本的基本单位。它不是"字"也不是"词",而是模型分词器(Tokenizer)切分出来的片段。

粗略估算:

  • 英文:1 Token ≈ 4 个字符 ≈ 0.75 个单词
  • 中文:1 Token ≈ 1-2 个汉字
  • 代码:变量名、关键字各占 1-3 个 Token

示例:

"Hello, world!" → ["Hello", ",", " world", "!"] → 4 tokens
"你好世界" → ["你好", "世界"] → 2 tokens
"function sum(a, b)" → ["function", " sum", "(", "a", ",", " b", ")"] → 7 tokens

计费方式

AI API 按 Token 数量计费,分为:

  • 输入 Token(Input):你发送给 AI 的内容(系统提示词 + 用户消息 + 历史对话)
  • 输出 Token(Output):AI 生成的回复
  • 缓存写入 Token(Cache Write):首次缓存的提示词内容
  • 缓存读取 Token(Cache Read):命中缓存的提示词内容

输出 Token 通常比输入 Token 贵 3-5 倍。

各模型定价对比

模型 输入($/1M Token) 输出($/1M Token)
Claude Opus 4 $15 $75
Claude Sonnet 4 $3 $15
Claude Haiku 4 $0.80 $4
GPT-4o $2.50 $10
GPT-4o mini $0.15 $0.60
Gemini 2.5 Pro $1.25 $10
Gemini 2.5 Flash $0.15 $0.60
DeepSeek-V3 $0.27 $1.10

通过 Inkess LLM 代理,价格更低。查看 Inkess 定价

Prompt Caching 省钱原理

Prompt Caching 让你把不变的系统提示词缓存起来,后续请求只需付缓存读取价格(通常是输入价格的 10%)。

适用场景:

  • 长系统提示词(>1000 Token)
  • 多轮对话(系统提示词每轮重复发送)
  • 批量处理(同一提示词处理多个文档)

省钱效果:

假设系统提示词 2000 Token,每天 1000 次调用:

方式 每日成本(Claude Sonnet)
无缓存 2000 × 1000 × $3/1M = $6.00
有缓存 首次 $0.006 + 999 × 2000 × $0.30/1M = $0.60
节省 90%

使用方���(Anthropic)

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "你是一个专业的代码审查助手...(很长的系统提示词)",
            "cache_control": {"type": "ephemeral"}
        }
    ],
    messages=[
        {"role": "user", "content": "审查这段代码..."}
    ],
)

# 查看缓存命中情况
print(f"Cache read: {response.usage.cache_read_input_tokens}")
print(f"Cache write: {response.usage.cache_creation_input_tokens}")

Batch API 折扣

Batch API 允许你批量提交请求,通常在 24 小时内完成,价格是实时 API 的 50%。

适用场景:

  • 数据标注
  • 批量翻译
  • 内容生成
  • 不需要实时响应的任务

成本优化策略

1. 选择合适的模型

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

任务 推荐模型 原因
简单分类 Haiku / GPT-4o mini 便宜 10 倍,效果够用
代码生成 Sonnet 4 性价比最高
复杂推理 Opus 4 / o3 只有最强模型能做好

2. 精简提示词

# 差:冗长的提示词(500 Token)
你是一个非常专业的、经验丰富的、在软件工程领域有着深厚造诣的代码审查专家。
你需要仔细地、认真地、全面地审查用户提供的代码...

# 好:精简的提示词(50 Token)
You are a code reviewer. Review for: security, performance, correctness.
Output format: severity | location | issue | fix

3. 减少上下文

  • 只发送相关的对话历史,不要发送整个聊天记录
  • 定期总结长对话,用总结替代原始消息
  • 只包含必要的代码片段,不要发送整个文件

4. 控制输出长度

# 限制输出 Token 数
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=256,  # 限制输出长度
    messages=[...],
)

5. 使用缓存

对于重复的系统提示词,务必开启 Prompt Caching。

6. 模型降级策略

def smart_call(messages, complexity="low"):
    """根据任务复杂度选择模型"""
    model_map = {
        "low": "claude-haiku-4-5-20251001",
        "medium": "claude-sonnet-4-20250514",
        "high": "claude-opus-4-20250514",
    }
    return client.messages.create(
        model=model_map[complexity],
        max_tokens=1024,
        messages=messages,
    )

如何估算成本

公式:

成本 = (输入 Token × 输入单价) + (输出 Token × 输出单价)

快速估算工具:

  • 1 页 A4 文档 ≈ 500-800 Token
  • 1 篇博客文章 ≈ 1000-3000 Token
  • 1 个源代码文件 ≈ 500-2000 Token

月度成本估算:

假设每天 100 次 API 调用,每次平均 1000 输入 + 500 输出 Token:

模型 月成本
Claude Sonnet 4 $0.09 + $0.225 = ~$0.32
GPT-4o mini $0.0045 + $0.009 = ~$0.01
DeepSeek-V3 $0.008 + $0.017 = ~$0.03

对于个人开发者,AI API 的成本通常很低。