Подсчёт токенов позволяет определить количество токенов в сообщении до его отправки в 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?