Anthropic Python SDK — официальная библиотека для работы с Claude. Она скрывает сложность HTTP-запросов, добавляет типизацию и автоматически обрабатывает временные ошибки сети.
Установка
uv add anthropic
Создание клиента
import anthropic
# Явная передача ключа:
client = anthropic.Anthropic(api_key="sk-ant-api03-...")
# Или SDK сам читает ANTHROPIC_API_KEY из окружения:
client = anthropic.Anthropic()
Первый запрос
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Привет! Объясни что такое API."}
]
)
print(message.content[0].text)
Текст ответа в message.content[0].text — не в message.text. Это сознательное решение: Claude может вернуть несколько блоков контента (текст, вызов инструмента, JSON), поэтому content — это список.
Структура запроса
client.messages.create(
model="claude-sonnet-4-6", # обязательно
max_tokens=1024, # обязательно
system="Ты Python-тьютор.", # необязательно — задаёт роль
temperature=0.7, # необязательно — 0.0–1.0
messages=[ # обязательно
{"role": "user", "content": "Первый вопрос"},
{"role": "assistant", "content": "Первый ответ"},
{"role": "user", "content": "Второй вопрос"},
]
)
Роли в messages должны чередоваться: user → assistant → user → …
Структура ответа
message.id # уникальный ID запроса
message.model # модель которая ответила
message.stop_reason # "end_turn" или "max_tokens"
message.content[0].text # текст ответа
message.usage.input_tokens # токены запроса (биллинг)
message.usage.output_tokens # токены ответа (биллинг)
Доступные модели (2026)
| Модель | Применение |
|---|---|
claude-haiku-4-5 |
Простые задачи, высокий трафик |
claude-sonnet-4-6 |
Большинство задач — оптимальный баланс |
claude-opus-4-7 |
Сложные задачи, глубокий анализ |
Обработка ошибок
try:
message = client.messages.create(...)
except anthropic.AuthenticationError:
print("Неверный API-ключ. Проверь .env")
except anthropic.RateLimitError:
print("Превышен лимит запросов — подожди немного")
except anthropic.APIConnectionError:
print("Нет подключения к API Anthropic")
except anthropic.APIStatusError as e:
print(f"Ошибка API {e.status_code}: {e.message}")
Автоматические ретраи
SDK автоматически повторяет запрос при ошибках 429 Too Many Requests и 5xx Server Error:
# Настройка количества попыток:
client = anthropic.Anthropic(
api_key=API_KEY,
max_retries=3, # по умолчанию 2
timeout=30.0, # таймаут в секундах
)
Messages API vs Legacy API
client.messages.create() — это Messages API, актуальный способ работы с Claude. Старый API (completions) устарел и не поддерживает новые возможности (tool use, streaming, vision).
Всегда используй Messages API.
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!