📝 LLM и AI

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

0
Автор
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
Опубликовано
04.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
17
🌱
Уровень
Начальный
🐦 💼 ✈️

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)

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

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

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

🔗 Похожие

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

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

📝

Стриминг ответов LLM: ответ по частям

По умолчанию messages.create() ждёт пока модель полностью сформирует ответ и только потом возвращает результат. При...

📅 04.06.2026 👁️ 19
📝

uv: современный менеджер пакетов для Python

uv — инструмент нового поколения для управления Python-зависимостями. Написан на Rust компанией Astral, в 10–100...

📅 04.06.2026 👁️ 17
📝

System prompts: задаём роль языковой модели

System prompt — это невидимая инструкция для модели которую задаёт разработчик. Пользователь её не видит,...

📅 04.06.2026 👁️ 14

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!