Token成本Effort
Token 管理:计数、优化、控制成本
·约 5 分钟阅读
使用 Claude API 的费用完全取决于 token 消耗。理解 token 是什么、如何计算、如何优化,是控制 AI 应用成本的关键。本文教你精确管理 token 用量。
你将学到什么
- 什么是 token,中文和英文的 token 差异
- 如何预估和计算 token 用量
- 用 Effort 参数控制思考深度
- 5 个降低 token 消耗的实用技巧
Token 基础
Token 是语言模型处理文本的基本单位。粗略来说:
- 英文:1 个 token ≈ 4 个字符 ≈ 0.75 个单词
- 中文:1 个 token ≈ 1.5 个汉字
也就是说,同样的内容用中文表达比英文消耗更多 token。
Token 计数 API
# 精确计算 token 数量
count = client.messages.count_tokens(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "你好,请帮我分析一下这段代码"}],
system="你是一位代码审查专家。",
)
print(count.input_tokens) # 精确的输入 token 数
输入和输出分开计费
输入 token:你发送给 Claude 的内容(system + messages + tools) 输出 token:Claude 生成的回答
输出价格通常是输入的 3-5 倍,所以控制输出长度比控制输入更能省钱。
Effort 参数
控制 Claude 在回答前的思考深度:
# 低 effort:快速回答,少思考
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
thinking={"type": "adaptive", "effort": "low"},
messages=[{"role": "user", "content": "1+1等于多少?"}]
)
# 高 effort:深度思考,消耗更多 token
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=8192,
thinking={"type": "adaptive", "effort": "high"},
messages=[{"role": "user", "content": "证明费马大定理"}]
)
Tip: 简单问题用 low effort,复杂推理用 high effort。默认是 medium。
5 个降低 token 消耗的技巧
技巧一:精简 System Prompt
❌ 冗长:你是一位经验丰富的、在行业内享有盛誉的高级软件工程师...(200字)
✅ 精简:你是高级软件工程师。回答简洁,附代码示例。
技巧二:限制输出长度
# 在 prompt 中要求简洁
messages=[{"role": "user", "content": "用 3 句话总结这篇文章"}]
# 同时设置合理的 max_tokens
max_tokens=500 # 而不是 4096
技巧三:选择合适的模型
简单任务用 Haiku($1/$5),复杂任务才用 Opus($5/$25)。
技巧四:管理对话历史
多轮对话中,每次请求都带上所有历史。定期清理或总结历史消息。
技巧五:使用缓存
Prompt Caching 节省 90% 的重复输入 token 费用。
成本监控
# 每次请求后记录用量
usage = response.usage
cost = (
usage.input_tokens * 3 / 1_000_000 + # Sonnet 输入 $3/M
usage.output_tokens * 15 / 1_000_000 # Sonnet 输出 $15/M
)
print(f"本次费用: ${cost:.6f}")
实战练习
Tip: 开始监控你的 API 使用成本。
- 用 count_tokens API 预估你一个典型请求的 token 用量
- 记录 10 次请求的实际 token 消耗,计算平均成本
- 尝试用 Effort 参数优化一个任务的成本
关键要点
Note: 本文核心总结
- 中文约 1.5 字 = 1 token,输出比输入贵 3-5 倍
- 用 count_tokens API 精确预估费用
- Effort 参数控制思考深度和成本
- 5 个省钱技巧:精简 prompt、限制输出、选对模型、管理历史、启用缓存