claude-api-python
title: Руководство по Claude API для Python 2026 | APIMaster.ai description: Как использовать Claude API с Python. Полные примеры с использованием Anthropic SDK и OpenAI-совместимого клиента: чат, стриминг, анализ изображений и вызов функций через APIMaster.ai.
Руководство по Claude API для Python
Это руководство охватывает использование Claude API в Python как с нативным Anthropic SDK, так и с OpenAI-совместимым клиентом. Все примеры работают с APIMaster.ai — замените свой базовый URL и API-ключ.
Установка
pip install anthropic # Native Anthropic SDK
pip install openai # OpenAI-compatible (optional)
Базовая настройка
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai", # No /v1 for Anthropic SDK
)
Или с SDK OpenAI (проще, если вы уже используете OpenAI):
from openai import OpenAI
client = OpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
Ваш первый вызов Claude API
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explain the difference between lists and tuples in Python."}
],
)
print(message.content[0].text)
Системные промпты
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system="You are a senior Python engineer. Be concise and use code examples.",
messages=[
{"role": "user", "content": "What's the fastest way to flatten a nested list?"}
],
)
print(response.content[0].text)
Многошаговая беседа
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=conversation,
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
print(chat("What is a decorator in Python?"))
print(chat("Can you show me a practical example?"))
Потоковые ответы
Потоковая передача возвращает токены по мере их генерации — улучшает UX для длинных выводов:
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a Python web scraper using requests and BeautifulSoup."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # newline at end
Зрение: анализ изображений
Claude Sonnet и Opus поддерживают ввод изображений (base64 или URL):
import base64
with open("chart.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{"type": "text", "text": "Summarize what this chart shows."},
],
}
],
)
print(response.content[0].text)
Использование инструментов (вызов функций)
tools = [
{
"name": "get_weather",
"description": "Get current weather for a city",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"},
},
"required": ["city"],
},
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
)
# Check if Claude wants to call a tool
if response.stop_reason == "tool_use":
tool_call = next(b for b in response.content if b.type == "tool_use")
print(f"Tool: {tool_call.name}, Input: {tool_call.input}")
Асинхронное использование
import asyncio
import anthropic
async def main():
client = anthropic.AsyncAnthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
response = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.content[0].text)
asyncio.run(main())
Обработка ошибок
import anthropic
try:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Hello"}],
)
except anthropic.AuthenticationError:
print("Invalid API key")
except anthropic.RateLimitError:
print("Rate limit—add retry logic")
except anthropic.APIStatusError as e:
print(f"API error {e.status_code}: {e.message}")
Выбор подходящей модели Claude для проектов на Python
| Задача | Модель | Причина |
|---|---|---|
| Чат-боты, вопросы-ответы | claude-haiku-4-5 | Быстро + дешево |
| Генерация кода | claude-sonnet-4-6 | Лучший баланс |
| Сложные рассуждения | claude-opus-4-8 | Наивысшая точность |
| Анализ документов | claude-sonnet-4-6 | 1M контекст |
Получить доступ к Claude API
Зарегистрируйтесь на APIMaster.ai чтобы получить доступ к Claude API через единую конечную точку, с актуальными ценами и данными проверки отпечатков.
Часто задаваемые вопросы
Как установить библиотеку Claude API для Python?
Выполните pip install anthropic для официального SDK, или pip install openai для использования OpenAI-совместимой конечной точки APIMaster с моделями Claude.
Какой Python SDK следует использовать для Claude API?
SDK anthropic является официальным выбором и поддерживает все функции, специфичные для Claude (использование инструментов, зрение, стриминг). SDK openai работает через слой совместимости APIMaster — полезен, если вы уже используете OpenAI и хотите переключить модели.
Как стримить ответы Claude API в Python?
Передайте stream=True с библиотекой openai, или используйте client.messages.stream() с SDK anthropic. Смотрите пример стриминга выше.
Поддерживает ли Claude API вызов функций (использование инструментов)?
Да — Claude поддерживает использование инструментов как в нативном Anthropic SDK, так и через OpenAI-совместимую конечную точку APIMaster с использованием стандартного параметра tools.
Каков максимальный контекстный окно для Claude в Python?
Claude Sonnet 4.6 и Opus 4.8 поддерживают по 1 млн токенов. Вы можете передавать очень длинные документы непосредственно в массив messages.
См. также: Цены на Claude API · Как получить ключ Claude API