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 的成本通常很低。