教程

大模型 Token 是什么?如何估算成本并减少 API 费用

大模型 Token 完整解析:Token 定义与中英文计算规律、API 费用双向计费机制、上下文长度与成本关系,以及 5 个降低 API 费用的方法(选对模型/批量 API 省 50%/Prompt 缓存省 90%/控制输出长度/管理对话上下文),附 Anthropic Console 成本监控指南。

2026/3/135分钟 阅读ClaudeEagle

调用 Claude API 被扣了很多钱但不知道为什么?这篇文章解释清楚 Token 是什么、怎么计算、API 费用如何产生,以及 5 个有效降低成本的方法。

Token 是什么?

Token 是大模型处理文本的基本单位,既不是字符也不是单词,而是介于两者之间的"词片段"。

英文规律:大约 1 个单词 = 1.3 个 Token

  • "Hello" → 1 token
  • "Hello world" → 2 tokens
  • "anthropic" → 1 token
  • "AI programming" → 3 tokens

中文规律:大约 1 个汉字 = 1-2 个 Token

  • "你好" → 2-3 tokens
  • "人工智能编程" → 7-10 tokens
  • 中文比英文消耗更多 Token(同样含义的内容)

代码:代码通常比自然语言更"Token 密集"

  • 变量名、括号、缩进都单独计 Token
  • 一行 Python 代码大约 5-15 tokens

如何估算 Token 数量

工具:Anthropic Tokenizer

官方提供在线工具:console.anthropic.com/tokenizer

粘贴文本,立即显示 Token 数量。

API 方式预估

调用前先数 Token,避免超额:

python
import anthropic

client = anthropic.Anthropic()

# 不实际发请求,只统计 Token
response = client.messages.count_tokens(
    model="claude-opus-4-5",
    system="你是一个 Python 专家",
    messages=[
        {"role": "user", "content": "解释什么是装饰器,给一个实际例子"}
    ]
)

print(f"预计输入 Token: {response.input_tokens}")
# 输出:预计输入 Token: 34

API 费用是怎么算的?

Claude API 按 Token 双向计费:输入 Token + 输出 Token

2026 年 Claude 模型定价(参考)

模型输入(每百万 Token)输出(每百万 Token)
claude-opus-4-5$15$75
claude-sonnet-4-5$3$15
claude-haiku-3-5$0.8$4

最新价格以 Anthropic Console 为准

一次 API 调用的费用计算

场景:用 claude-sonnet-4-5 写一篇 500 字的技术总结 输入:系统提示(50 tokens) + 用户消息(200 tokens) = 250 tokens 输出:生成内容约 600 tokens 费用 = (250/1,000,000 × $3) + (600/1,000,000 × $15) = $0.00000075 + $0.000009 ≈ $0.00001(不到 1 分钱)

看起来很便宜?但输出比输入贵 5 倍,高频调用或长上下文时成本会快速累积。

上下文长度为什么会影响成本?

每次 API 调用,整个对话历史都作为输入 Token 计费

第 1 轮:输入 100 tokens,输出 200 tokens → 计 300 tokens 第 2 轮:输入 (100+200+新问题100) tokens,输出 200 tokens → 计 600 tokens 第 3 轮:输入 (100+200+100+200+新问题100) tokens ... → 越来越贵

这就是为什么长对话成本会指数级增长。

5 个降低 API 成本的方法

方法 1:选对模型

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

任务类型推荐模型理由
简单分类、格式转换claude-haiku-3-5速度快、成本低 10-20 倍
日常问答、代码补全claude-sonnet-4-5质量和成本均衡
复杂推理、架构设计claude-opus-4-5最强推理,值得多花钱

实战技巧:先用 Haiku 跑,只有结果不满意才升级到 Sonnet/Opus。

方法 2:批量 API(省 50%)

非实时任务用批量 API,费用减半:

python
import anthropic

client = anthropic.Anthropic()

# 批量提交 1000 个任务,异步处理,费用 -50%
batch = client.messages.batches.create(
    requests=[
        {
            "custom_id": f"task-{i}",
            "params": {
                "model": "claude-haiku-3-5",
                "max_tokens": 200,
                "messages": [{"role": "user", "content": texts[i]}]
            }
        }
        for i in range(len(texts))
    ]
)

# 稍后轮询结果
print(f"批次 ID: {batch.id}")

适合:批量分类、大量数据处理、离线生成任务。

方法 3:Prompt 缓存(Cache Control)

系统提示或大段文档不变时,用缓存避免重复计费:

python
response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "你是一个代码审查专家..." + 长达 10000 token 的规范文档,
            "cache_control": {"type": "ephemeral"}  # 缓存这部分
        }
    ],
    messages=[{"role": "user", "content": "审查这段代码..."}]
)

缓存命中时,这部分 Token 费率降低 90%。适合:

  • 固定的长系统提示
  • 每次调用都带入的大文档
  • 多轮对话中不变的背景信息

方法 4:控制输出长度

python
# 设置合理的 max_tokens,避免无限生成
response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=500,  # 根据实际需要设置
    messages=[{"role": "user", "content": "用 2 句话总结这篇文章"}]
)

在 Prompt 里明确说明长度要求:

  • "用不超过 200 字回答"
  • "只给代码,不要解释"
  • "一句话总结"

方法 5:管理对话上下文

长对话中定期清理不必要的历史:

python
# 不要无限积累历史,保留最近 N 轮
def keep_recent_messages(messages, max_turns=10):
    # 保留 system 消息 + 最近的对话
    recent = messages[-max_turns * 2:] if len(messages) > max_turns * 2 else messages
    return recent

或者用 Claude Code 时,任务完成后 /clear 清空上下文,开新任务从干净状态开始。

监控成本的工具

Anthropic Consoleconsole.anthropic.com/settings/limits

  • 查看当月用量和费用
  • 设置支出上限(超额自动停止)
  • 按 Workspace 隔离不同项目的费用

代码里统计

python
response = client.messages.create(...)

print(f"本次调用:")
print(f"  输入: {response.usage.input_tokens} tokens")
print(f"  输出: {response.usage.output_tokens} tokens")
print(f"  缓存命中: {response.usage.cache_read_input_tokens} tokens")

快速估算工具

简单记忆公式:

英文文本:字符数 ÷ 4 ≈ Token 数 中文文本:字符数 × 1.5 ≈ Token 数

来源:Anthropic API 文档 + 定价页面

相关文章推荐

教程Claude Cache Diagnostics 教程:定位 Prompt Cache Miss 的真正原因Claude Cache Diagnostics 解决 prompt cache miss 难排查问题。通过传入上一次 response id,API 会比较请求 fingerprint,告诉你 model/system/tools/messages 哪个部分破坏了缓存 prefix。2026/6/6教程Claude MCP Tunnels 指南:不用开放入站端口,也能把私有 MCP 服务接给 ClaudeMCP Tunnels 是 Anthropic 面向企业内网 MCP 服务的 beta 能力,通过 outbound-only 连接、cloudflared、proxy、inner TLS 和 OAuth,让 Claude 安全访问私有工具与数据源。2026/6/6教程Claude Mid-conversation System Messages 使用指南:长会话不再破坏 Prompt CacheClaude Opus 4.8 新增 mid-conversation system messages,可在长会话中途追加系统级指令,不改顶层 system prompt,从而保持缓存 prefix 命中,降低 Agent 循环成本。2026/6/6教程Claude Citations 完整指南:让 AI 回答带可验证引用,适合 RAG 与文档问答Claude Citations 官方能力中文整理:如何启用 citations.enabled、支持的文档类型、PDF 页码引用、文本字符索引、custom content block 索引、RAG chunk 粒度控制、与 Prompt Caching 兼容性和 Structured Outputs 不兼容限制。2026/5/21教程Claude Batch Processing 完整指南:批量处理任务如何节省 50% API 成本Claude Batch Processing 官方能力中文整理:为什么批处理能省钱、如何创建 batch、custom_id 设计、轮询状态、下载结果、处理失败请求,以及适合大规模分类、摘要、翻译、数据清洗的任务模式。2026/5/21教程Claude Prompt Caching 完整指南:降低长上下文成本与延迟的 API 实战Claude Prompt Caching 官方能力中文整理:适合缓存的内容、cache_control 使用方法、缓存断点策略、长文档和工具定义复用、成本/延迟收益、常见坑和生产环境落地建议。2026/5/21