Подсчет токенов позволяет определить количество токенов в сообщении перед отправкой его Claude. Это помогает вам принимать обоснованные решения о ваших подсказках и использовании. С помощью подсчета токенов вы можете:
Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Конечная точка подсчета токенов принимает тот же структурированный список входных данных для создания сообщения, включая поддержку системных подсказок, инструментов, изображений и PDF-файлов. Ответ содержит общее количество входных токенов.
Подсчет токенов следует рассматривать как оценку. В некоторых случаях фактическое количество входных токенов, используемых при создании сообщения, может незначительно отличаться.
Подсчет токенов может включать токены, автоматически добавленные Anthropic для системных оптимизаций. С вас не взимается плата за токены, добавленные системой. Выставление счетов отражает только ваш контент.
Все активные модели поддерживают подсчет токенов, включая Claude Sonnet 5.
Claude Opus 4.7 и более поздние модели Opus, Claude Fable 5, Claude Mythos 5, Claude Mythos Preview и Claude Sonnet 5 используют более новый токенизатор. Тот же входной текст производит примерно на 30% больше токенов, чем на более ранних моделях. Точное увеличение зависит от содержимого и характера рабочей нагрузки. Пересчитывайте подсказки для модели, которую вы планируете использовать, вместо повторного использования подсчетов, измеренных на более ранних моделях.
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
system="You are a scientist",
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(response.json()){ "input_tokens": 14 }Подсчет токенов серверных инструментов применяется только к первому вызову сэмплирования.
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
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()){ "input_tokens": 403 }import base64
import httpx
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image_media_type,
"data": image_data,
},
},
{"type": "text", "text": "Describe this image"},
],
}
],
)
print(response.json()){ "input_tokens": 1551 }Смотрите как рассчитывается контекстное окно с расширенным мышлением для получения дополнительной информации
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-sonnet-4-6",
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. Let's 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?"},
],
)
print(response.json()){ "input_tokens": 88 }Подсчет токенов поддерживает PDF-файлы с теми же ограничениями, что и Messages API.
import base64
import anthropic
client = anthropic.Anthropic()
with open("/path/to/document.pdf", "rb") as pdf_file:
pdf_base64 = base64.standard_b64encode(pdf_file.read()).decode("utf-8")
response = client.messages.count_tokens(
model="claude-opus-4-8",
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_base64,
},
},
{"type": "text", "text": "Please summarize this document."},
],
}
],
)
print(response.json()){ "input_tokens": 2188 }Claude Fable 5 и Claude Mythos 5 используют токенизатор, представленный с Claude Opus 4.7, который производит примерно на 30% больше токенов, чем модели до Claude Opus 4.7, для того же текста. Точное увеличение зависит от содержимого и характера рабочей нагрузки. Конечная точка подсчета токенов возвращает количество согласно токенизатору модели model, которую вы передаете, поэтому, чтобы измерить разницу для вашей рабочей нагрузки, подсчитайте один и тот же запрос дважды: один раз с вашей текущей моделью и один раз с model: "claude-fable-5" (или "claude-mythos-5"), и сравните два значения input_tokens.
Выставление счетов и миграция: Использование и выставление счетов на Claude Fable 5 и Claude Mythos 5 отражают подсчеты этого токенизатора. Если вы мигрируете с модели до Claude Opus 4.7, тот же контент потребляет примерно на 30% больше токенов. Точное увеличение зависит от содержимого и характера рабочей нагрузки. При миграции рабочей нагрузки на Claude Fable 5 и Claude Mythos 5 не используйте повторно подсчеты токенов, измеренные на модели до Claude Opus 4.7, для оценки затрат или соответствия контекстному окну. Подсчитывайте ваши подсказки с model: "claude-fable-5" (или "claude-mythos-5").
Подсчет токенов бесплатен для использования, но подчиняется ограничениям скорости по количеству запросов в минуту в зависимости от вашего уровня использования. Если вам нужны более высокие лимиты, используйте Request rate limit increase на странице Limits.
| Уровень использования | Запросов в минуту (RPM) |
|---|---|
| Start | 2,000 |
| Build | 4,000 |
| Scale | 8,000 |
Подсчет токенов и создание сообщений имеют отдельные и независимые ограничения скорости. Использование одного не учитывается в лимитах другого.
Прочитайте полный справочник API для конечной точки подсчета токенов.
Используйте подсчет токенов, чтобы удерживать подсказки в пределах контекстного окна модели.
Проверяйте количество токенов перед отправкой запроса, чтобы оставаться в пределах вашего уровня использования.
Снижайте затраты и задержку при повторяющихся подсказках, кэшируя префиксы подсказок.
Was this page helpful?