功能
令牌计数
令牌计数使您能够在将消息发送给Claude之前确定消息中的令牌数量,帮助您对提示和使用情况做出明智的决策。通过令牌计数,您可以:
- 主动管理速率限制和成本
- 做出智能模型路由决策
- 优化提示以达到特定长度
如何计算消息令牌
令牌计数端点接受与创建消息相同的结构化输入列表,包括对系统提示、工具、图像和PDF的支持。响应包含输入令牌的总数。
令牌计数应被视为估计值。在某些情况下,创建消息时实际使用的输入令牌数可能会有少量差异。
支持的模型
令牌计数端点支持以下模型:
- Claude Opus 4
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Sonnet 3.5
- Claude Haiku 3.5
- Claude Haiku 3
- Claude Opus 3
计算基本消息中的令牌
import anthropic
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-20250514",
system="You are a scientist",
messages=[{
"role": "user",
"content": "Hello, Claude"
}],
)
print(response.json())
JSON
{ "input_tokens": 14 }
计算带有工具的消息中的令牌
服务器工具令牌计数仅适用于第一次采样调用。
import anthropic
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-20250514",
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"],
},
}
],
messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}]
)
print(response.json())
JSON
{ "input_tokens": 403 }
计算带有图像的消息中的令牌
#!/bin/sh
IMAGE_URL="https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
IMAGE_MEDIA_TYPE="image/jpeg"
IMAGE_BASE64=$(curl "$IMAGE_URL" | base64)
curl https://api.anthropic.com/v1/messages/count_tokens \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-opus-4-20250514",
"messages": [
{"role": "user", "content": [
{"type": "image", "source": {
"type": "base64",
"media_type": "'$IMAGE_MEDIA_TYPE'",
"data": "'$IMAGE_BASE64'"
}},
{"type": "text", "text": "Describe this image"}
]}
]
}'
JSON
{ "input_tokens": 1551 }
计算带有扩展思考的消息中的令牌
有关如何使用扩展思考计算上下文窗口的更多详细信息,请参见此处
- 之前助手回合的思考块会被忽略,不会计入您的输入令牌
- 当前助手回合的思考会计入您的输入令牌
curl https://api.anthropic.com/v1/messages/count_tokens \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "content-type: application/json" \
--header "anthropic-version: 2023-06-01" \
--data '{
"model": "claude-opus-4-20250514",
"thinking": {
"type": "enabled",
"budget_tokens": 16000
},
"messages": [
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
},
{
"role": "assistant",
"content": [
{
"type": "thinking",
"thinking": "This is a nice number theory question. Lets think about it step by step...",
"signature": "EuYBCkQYAiJAgCs1le6/Pol5Z4/JMomVOouGrWdhYNsH3ukzUECbB6iWrSQtsQuRHJID6lWV..."
},
{
"type": "text",
"text": "Yes, there are infinitely many prime numbers p such that p mod 4 = 3..."
}
]
},
{
"role": "user",
"content": "Can you write a formal proof?"
}
]
}'
JSON
{ "input_tokens": 88 }
计算带有PDF的消息中的令牌
令牌计数支持PDF,与消息API具有相同的限制。
curl https://api.anthropic.com/v1/messages/count_tokens \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "content-type: application/json" \
--header "anthropic-version: 2023-06-01" \
--data '{
"model": "claude-opus-4-20250514",
"messages": [{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "'$(base64 -i document.pdf)'"
}
},
{
"type": "text",
"text": "Please summarize this document."
}
]
}]
}'
JSON
{ "input_tokens": 2188 }
定价和速率限制
令牌计数免费使用,但受到基于您的使用层级的每分钟请求数限制。如果您需要更高的限制,请通过Anthropic控制台联系销售团队。
使用层级 | 每分钟请求数(RPM) |
---|---|
1 | 100 |
2 | 2,000 |
3 | 4,000 |
4 | 8,000 |
令牌计数和消息创建有单独且独立的速率限制 — 一个的使用不会计入另一个的限制。
常见问题
不,令牌计数提供估计值而不使用缓存逻辑。虽然您可以在令牌计数请求中提供cache_control
块,但提示缓存仅在实际创建消息时发生。