API Anthropic Claude в Python
anthropic.Anthropic(), messages.create(), блоки содержимого, расширенное рассуждение, потоковая передача
«API Anthropic Claude в Python» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
SDK Anthropic
Доступ к моделям Claude Anthropic осуществляется через пакет Python anthropic. Установите его с помощью pip install anthropic. Claude особенно хорошо справляется с рассуждениями в длинном контексте, точным выполнением инструкций и использованием инструментов.
pip install anthropic
import anthropicСоздание клиента
Создайте клиент с помощью anthropic.Anthropic(). По умолчанию он считывает ключ из переменной окружения ANTHROPIC_API_KEY, поэтому учётные данные не приходится хранить в коде.
import anthropic
client = anthropic.Anthropic()
# Or explicitly
client = anthropic.Anthropic(api_key="sk-ant-...")API сообщений
Claude использует client.messages.create(). В отличие от OpenAI, системный промпт передаётся отдельным параметром, а не как сообщение в списке. Список messages содержит только реплики пользователя и ассистента.
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system="You are a concise expert.",
messages=[{"role": "user", "content": "Explain RAG in one sentence."}]
)Обязательное максимальное число токенов
Главное отличие заключается в том, что max_tokens в API Anthropic является обязательным. Он ограничивает количество токенов, которые Claude может сгенерировать в ответе. Установите достаточно высокое значение с учётом ожидаемого вывода, но помните, что этот параметр также защищает от неконтролируемого роста расходов.
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=2048,
messages=[{"role": "user", "content": "Write a haiku about Python."}]
)Чтение ответа
Claude возвращает список content, состоящий из блоков. Для обычного текста ответ находится в message.content[0].text. Это список, потому что ответ может содержать несколько блоков, например текст и запрос на использование инструмента.
print(message.content[0].text)
# Inspect block type
print(message.content[0].type) # "text"История разговора
Как и другие API чатов, Claude не хранит состояние. Чтобы продолжить разговор, с помощью append самостоятельно добавьте в messages ответ ассистента и следующую реплику пользователя.
messages = [{"role": "user", "content": "Hello"}]
resp = client.messages.create(model="claude-opus-4-8", max_tokens=512, messages=messages)
messages.append({"role": "assistant", "content": resp.content[0].text})
messages.append({"role": "user", "content": "Tell me more"})Потоковая передача с контекстным менеджером
Для вывода в реальном времени Claude предоставляет client.messages.stream(), который используется как контекстный менеджер с оператором with. Это обеспечивает безопасное открытие и закрытие соединения.
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Count to five."}]
) as stream:
pass # iterate insideПеребор текстового потока
Внутри блока with перебирайте stream.text_stream, чтобы получать приращения текста по мере их генерации Claude. Каждый элемент — это строка, готовая к выводу.
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Count to five."}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)Получение итогового сообщения
После завершения потоковой передачи вызовите stream.get_final_message(), чтобы получить полностью собранный объект сообщения, включая данные об использовании и все блоки содержимого.
with client.messages.stream(model="claude-opus-4-8", max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}]) as stream:
for text in stream.text_stream:
print(text, end="")
final = stream.get_final_message()Использование токенов
Ответ содержит объект usage с полями input_tokens и output_tokens. Обратите внимание: названия отличаются от используемых OpenAI (prompt/completion), но смысл тот же — отслеживать стоимость каждого вызова.
print(message.usage.input_tokens)
print(message.usage.output_tokens)Различия между OpenAI и Anthropic
Запомните основные различия: Anthropic передаёт системный промпт отдельным параметром, требует указать максимальное число токенов, извлекает текст из content[0].text и организует потоковую передачу через контекстный менеджер with. Зная это, Вы сможете уверенно переключаться между провайдерами.
Быстрая проверка
Проверьте свои знания об Anthropic.
Повторение: Claude в Python
Вы создали клиент anthropic.Anthropic() и вызвали messages.create(), указав обязательный параметр max_tokens и отдельный системный промпт system. Ответы Вы читали из content[0].text, а стоимость отслеживали через usage.input_tokens / output_tokens.
Для потоковой передачи Вы использовали client.messages.stream() как контекстный менеджер with, перебирали text_stream и получали собранный результат с помощью get_final_message().
Часто задаваемые вопросы
Урок «API Anthropic Claude в Python» бесплатный?
Да — полный текст урока «API Anthropic Claude в Python» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «API Anthropic Claude в Python»?
anthropic.Anthropic(), messages.create(), блоки содержимого, расширенное рассуждение, потоковая передача Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «API Anthropic Claude в Python»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- API OpenAI: chat.completions и потоковая передача
- API Anthropic Claude в Python
- Вызов функций и использование инструментов с LLM
- Проектирование промптов для продуктивных приложений с LLM