Вызов Anthropic API: messages
Используйте API Anthropic messages: изучите отличия от OpenAI, размещение системного промпта и рекомендации для Claude.
«Вызов Anthropic API: messages» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Почему Anthropic
Модели Claude часто лучше следуют инструкциям, эффективнее работают с инструментами и имеют более длинные контекстные окна, чем сопоставимые модели OpenAI, — а иногда стоят дешевле.
Большинство рабочих агентов поддерживают обоих провайдеров как резервный вариант.
Install the SDK
# pip install anthropic
import anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from envВаш первый вызов
Используется конечная точка messages.create:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
system='You are a concise assistant.',
messages=[
{'role': 'user', 'content': 'Capital of France?'},
],
)
print(response.content[0].text)
# 'Paris.'Основные отличия от OpenAI
system— параметр верхнего уровня, а не сообщениеmax_tokensимеет значениеREQUIREDcontent— это список блоков (текст, tool_use и т. д.)- Параметра
nнет — используйте несколько вызовов
Блоки содержимого
Даже текстовые ответы представлены в виде списка блоков:
response.content # list of blocks
response.content[0].type # 'text' or 'tool_use'
response.content[0].text # the text content
response.stop_reason # 'end_turn' / 'max_tokens' / 'tool_use'
response.usage.input_tokens
response.usage.output_tokensСодержимое из нескольких блоков
Вы также можете отправлять список блоков содержимого в сообщениях пользователя (изображения, результаты инструментов):
messages = [{
'role': 'user',
'content': [
{'type': 'text', 'text': 'What is in this image?'},
{'type': 'image', 'source': {
'type': 'base64',
'media_type': 'image/png',
'data': image_base64
}}
]
}]Предварительное заполнение ассистента
Принудительно задайте определённое начало ответа:
messages = [
{'role': 'user', 'content': 'Return a JSON object.'},
{'role': 'assistant', 'content': '{'}
]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
messages=messages,
)
# Output starts after '{', guaranteed to be JSON.Использование инструментов
Формат инструментов Anthropic похож на формат OpenAI, но использует input_schema:
tools = [{
'name': 'get_weather',
'description': 'Get current weather',
'input_schema': {
'type': 'object',
'properties': {'city': {'type': 'string'}},
'required': ['city']
}
}]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
tools=tools,
messages=messages,
)
if response.stop_reason == 'tool_use':
for block in response.content:
if block.type == 'tool_use':
print(block.name, block.input)Возврат результатов инструментов
Результаты инструментов помещаются в сообщение пользователя с блоком tool_result:
messages.append({
'role': 'user',
'content': [{
'type': 'tool_result',
'tool_use_id': 'toolu_abc',
'content': json.dumps(weather_data)
}]
})Кэширование промптов
Anthropic поддерживает кэширование промптов: помечайте длинные статические префиксы с помощью cache_control и платите 10% при попадании в кэш:
system = [
{'type': 'text', 'text': '...long system prompt...',
'cache_control': {'type': 'ephemeral'}}
]
for block in system:
print(f"type={block['type']} cache_control={block['cache_control']}")
print("text preview:", block['text'][:30])
Расширенное рассуждение
Claude поддерживает режим «расширенного рассуждения», в котором модель сначала рассуждает внутри себя, а затем отвечает:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=4096,
thinking={'type': 'enabled', 'budget_tokens': 2048},
messages=messages,
)Расположение системного промпта
Куда помещается системный промпт в API Anthropic?
Итоги
Теперь Вы умеете вызывать обоих основных провайдеров. Различия невелики, но реальны — большинство команд создают тонкий адаптер, позволяющий переключаться между ними.
Часто задаваемые вопросы
Урок «Вызов Anthropic API: messages» бесплатный?
Да — полный текст урока «Вызов Anthropic API: messages» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Вызов Anthropic API: messages»?
Используйте API Anthropic messages: изучите отличия от OpenAI, размещение системного промпта и рекомендации для Claude. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Вызов Anthropic API: messages»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Вызов OpenAI API: chat.completions
- Вызов Anthropic API: messages
- Потоковая передача ответов (SSE)
- Контроль расходов: подсчёт токенов и бюджеты