📝 LLM и AI

Anthropic SDK: первые шаги с Claude API

P
Автор
PyLand Team
📅
Опубликовано
04.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
335
🌿
Уровень
Средний

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 должны чередоваться: userassistantuser → …

Структура ответа

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)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

AI-агенты: ReAct loop и автономные действия

Чат-бот отвечает на вопросы. Агент — действует: вызывает инструменты, получает реальные данные и использует их...

📅 30.06.2026 👁️ 335
📝

Pydantic v2: валидация данных в Python

Pydantic — библиотека для проверки и преобразования данных через аннотации типов. Она часто используется в...

📅 30.06.2026 👁️ 330
📝

asyncio в Python: асинхронное программирование

asyncio — стандартная библиотека Python для асинхронного кода. Позволяет выполнять несколько задач «одновременно» в одном...

📅 30.06.2026 👁️ 318
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Нейросети в коде: 5 AI-проектов на Python с Claude Открыть программу курса