OpenModelOpenModel
使用指南

Token 计数

在发起 API 调用前预估消息中的 Token 数量

OpenModel 提供 Token 计数端点,允许你在发起 API 调用前估算消息中的 Token 数量。这对费用估算、上下文窗口管理和提示词优化非常有用。

端点

POST /v1/messages/count_tokens

此端点遵循 Anthropic Token 计数 API 格式。接受与 Messages API 相同的 messages 和 system 参数,返回 Token 计数而不实际生成响应。

请求格式

请求体与常规 Messages API 调用类似,但不需要 max_tokens:

curl https://api.openmodel.ai/v1/messages/count_tokens \
  -H "x-api-key: $OPENMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "messages": [
      {"role": "user", "content": "生命的意义是什么?"}
    ]
  }'

包含系统提示词

你可以包含系统提示词以获得更准确的计数:

result = client.messages.count_tokens(
    model="claude-sonnet-4-6",
    system="你是一个乐于助人的助手。",
    messages=[
        {"role": "user", "content": "用简单的语言解释量子计算。"}
    ],
)
print(f"输入 Token 数: {result.input_tokens}")

响应格式

端点返回包含 Token 计数的 JSON 对象:

{
  "input_tokens": 15
}

input_tokens 字段表示所有消息和系统提示词(如提供)的总 Token 数。

使用场景

费用估算

在发送请求前计算大致费用:

TOKEN_PRICES = {
    "claude-sonnet-4-6": {"input": 3.00, "output": 15.00},
}

result = client.messages.count_tokens(
    model="claude-sonnet-4-6",
    messages=my_messages,
)

price = TOKEN_PRICES["claude-sonnet-4-6"]
input_cost = (result.input_tokens / 1_000_000) * price["input"]
print(f"预估输入费用: ${input_cost:.6f}")

上下文窗口管理

在发送前检查消息是否超出模型的上下文窗口:

MAX_CONTEXT = 200_000

result = client.messages.count_tokens(
    model="claude-sonnet-4-6",
    messages=my_messages,
)

if result.input_tokens > MAX_CONTEXT * 0.9:
    print("警告: 即将达到上下文窗口限制")

提示词优化

比较不同提示词表述的 Token 数量,找到最高效的方式:

prompts = [
    "请总结以下文本:",
    "简要概括:",
    "给出简短摘要:",
]

for prompt in prompts:
    result = client.messages.count_tokens(
        model="claude-sonnet-4-6",
        messages=[{"role": "user", "content": f"{prompt} {my_text}"}],
    )
    print(f"'{prompt}' → {result.input_tokens} tokens")

不使用 API 的估算方法

如需在不调用 API 的情况下粗略估算,可以使用以下近似规则:

  • 英文文本:约每 4 个字符 1 个 Token,或每个单词约 0.75 个 Token
  • 代码:密度与英文文本相近
  • 中日韩文字:每个字符约 1-2 个 Token

这些仅为粗略估算。如需准确计数,请使用 Token 计数端点。

下一步

本页目录