Подсчёт токенов
Подсчитывайте токены в сообщении до его отправки в Claude. Используйте количество токенов для управления ограничениями скорости и затратами, принятия решений о маршрутизации между моделями и подгонки подсказок под целевую длину.
«Token counting» (подсчёт токенов) позволяет определить количество токенов в сообщении до его отправки в Claude. Это помогает вам принимать обоснованные решения о ваших подсказках и использовании. С помощью подсчёта токенов вы можете:
- Проактивно управлять «rate limits» (ограничениями скорости) и затратами
- Принимать разумные решения о маршрутизации между моделями
- Оптимизировать подсказки под определённую длину
Как подсчитать токены сообщения
Конечная точка подсчёта токенов принимает тот же структурированный список входных данных, что и для создания сообщения, включая поддержку «system prompts» (системных подсказок), инструментов, изображений и PDF-файлов. Ответ содержит общее количество входных токенов.
Эта конечная точка возвращает invalid_request_error для нескольких типов входных данных, которые принимает Messages API: «server tools» (серверные инструменты), такие как веб-поиск, веб-загрузка, выполнение кода и поиск инструментов (все серверные инструменты, кроме «advisor tool» (инструмента-советника)), коннектор для «Model Context Protocol», или MCP, а также блоки image или document с источником url или file. Чтобы подсчитать токены изображений и PDF, отправляйте их в формате base64. Для запросов, использующих серверные инструменты или серверы MCP, ответ Messages API сообщает об использованных токенах в объекте usage.
Поддерживаемые модели
Все активные модели поддерживают подсчёт токенов.
Подсчёт токенов в простых сообщениях
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-5-5",
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-5-5",
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 httpx2
image_url = "https://platform.claude.com/docs/images/vision-example.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx2.get(image_url).content).decode("utf-8")
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-5-5",
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": 1028 }Встроенный блок изображения, в котором задано "oversized_image": "error", отклоняется на этапе подсчёта точно так же, как его отклонил бы Messages API.
Подсчёт токенов в сообщениях с размышлениями
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-5-5",
thinking={"type": "adaptive"},
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-файлами
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-5-5",
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 и Claude Mythos
Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 и Claude Mythos 5 используют общий токенизатор, представленный вместе с Claude Opus 4.7. Подсказка даёт одинаковое количество токенов на всех четырёх моделях и примерно на 30 процентов больше, чем на моделях до Claude Opus 4.7 (точное увеличение зависит от содержимого). Конечная точка подсчёта токенов выполняет подсчёт с помощью токенизатора той модели, которую вы передаёте в параметре model. Чтобы измерить разницу для вашей рабочей нагрузки, подсчитайте один и тот же запрос дважды — один раз с вашей текущей моделью и один раз с моделью, на которую вы планируете перейти, — и сравните два значения input_tokens.
Цены и ограничения скорости
Подсчёт токенов бесплатен, но на него распространяются ограничения скорости по количеству запросов в минуту в зависимости от вашего уровня использования. Если вам нужны более высокие лимиты, воспользуйтесь функцией Request rate limit increase на странице Rate limits.
| Уровень использования | Запросов в минуту (RPM) |
|---|---|
| Start | 5 000 |
| Build | 10 000 |
| Scale | 20 000 |
Часто задаваемые вопросы
Нет, подсчёт токенов предоставляет оценку без использования логики кэширования. Хотя вы можете указывать блоки cache_control в вашем запросе на подсчёт токенов, «prompt caching» (кэширование подсказок) происходит только при фактическом создании сообщения.
Следующие шаги
Прочитайте полный справочник API для конечной точки подсчёта токенов.
Используйте количество токенов, чтобы удерживать подсказки в пределах контекстного окна модели.
Проверяйте количество токенов перед отправкой запроса, чтобы оставаться в пределах вашего уровня использования.
Снижайте затраты и задержку при повторяющихся подсказках за счёт кэширования префиксов подсказок.
Compatibility
- Supported platforms
- Claude API
- Claude Platform on AWS
- Amazon Bedrock
- Google Cloud
- Microsoft Foundry
Was this page helpful?