Claude 消息计数令牌 API 是一个强大的工具,它可以在不实际创建消息的情况下计算输入消息的令牌数量,包括工具、图像和文档的令牌数。这在估算成本或检查输入是否超过模型的上下文限制时非常有用。

本文将详细介绍如何使用 Claude 消息计数令牌 API。

环境准备/前置条件

在开始之前,请确保您已注册并登录 Ace Data Cloud 平台。您可以访问 Ace Data Cloud 官网 以获取更多信息。

申请过程

要使用 Claude 消息计数令牌 API,您可以访问 Claude 消息计数令牌 API 文档 页面,并点击“获取”按钮以获得请求所需的凭据。

如果您尚未登录或注册,将会自动重定向到登录页面,邀请您注册和登录。登录或注册后,您将自动返回到当前页面。

该 API 完全免费使用,不消耗任何配额。

基本用法

Claude 消息计数令牌 API 的请求路径为 /v1/messages/count_tokens,与官方的 Anthropic API 保持一致。我们需要提供至少两个必需参数:

  • model:选择要使用的 Claude 模型,例如 claude-sonnet-4-5-20250929claude-opus-4-20250514 等。
  • messages:一个包含输入消息的数组,每个消息包含 rolecontent

常见的可选参数包括:

  • system:系统提示,将包含在令牌计数中。
  • tools:工具定义,也将包含在令牌计数中。
  • thinking:扩展思考配置。

cURL 示例

curl -X POST 'https://api.acedata.cloud/v1/messages/count_tokens' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "messages": [
      {
        "role": "user",
        "content": "Hello, Claude"
      }
    ]
  }'

Python 示例

import httpx

url = "https://api.acedata.cloud/v1/messages/count_tokens"
headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json",
}
payload = {
    "model": "claude-sonnet-4-5-20250929",
    "messages": [
        {
            "role": "user",
            "content": "Hello, Claude"
        }
    ],
}
response = httpx.post(url, headers=headers, json=payload)
print(response.json())

返回结果示例:

{
  "input_tokens": 11
}

使用 Anthropic SDK

Claude 消息计数令牌 API 与官方 Anthropic SDK 完全兼容,可以直接使用 anthropic 库进行调用。

from anthropic import Anthropic

client = Anthropic(
    api_key="{token}",
    base_url="https://api.acedata.cloud",
)

result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    messages=[
        {
            "role": "user",
            "content": "Hello, Claude"
        }
    ],
)
print(result.input_tokens)

包括工具的令牌计数

如果您的请求中包含工具定义,这些工具也将包含在令牌计数中:

result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    messages=[
        {
            "role": "user",
            "content": "What is the weather in San Francisco?"
        }
    ],
    tools=[
        {
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "input_schema": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA"
                    }
                },
                "required": ["location"]
            }
        }
    ],
)
print(result.input_tokens)

包括系统提示的令牌计数

系统提示也会包含在令牌计数中:

result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    system="You are a helpful assistant that speaks Chinese.",
    messages=[
        {
            "role": "user",
            "content": "Hello"
        }
    ],
)
print(result.input_tokens)

常见问题

  • 此 API 是否会产生模型输出?
  • 该 API 仅计算输入令牌计数,不产生任何模型输出。

  • 令牌计数结果有什么用?

  • 令牌计数结果可用于估算调用 Claude 消息 API 的成本。

  • 不同模型的令牌化方法是否相同?

  • 令牌化方法可能因不同模型而异,因此请使用与实际调用中相同的模型参数。

  • 是否有配额限制?

  • 此 API 完全免费使用,不消耗任何配额。

总结

通过使用 Claude 消息计数令牌 API,开发者可以轻松地计算输入消息的令牌数量,从而更好地管理调用成本。无论是使用 cURL 还是 Python,操作都非常简单且直观。希望本文能够帮助您快速上手并有效利用该 API。

相关链接: - Ace Data Cloud - Claude 消息计数令牌 API 文档

技术标签:#API #Claude #令牌计数 #AceDataCloud #Python

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐