Claude API на Python
Минимальная рабочая интеграция Claude API Tech с официальным Python SDK Anthropic: синхронный запрос, async и потоковый ответ.
Проверено: 1 августа 2026 года.
Короткий ответ
anthropic, создайте Anthropic(api_key=..., base_url="https://api.llm-gate.tech") и вызовите client.messages.create(). Python 3.9+ соответствует текущим требованиям официального SDK.Установка
python -m pip install --upgrade anthropic
export ANTHROPIC_API_KEY="sk-cs2-YOUR_API_KEY"Используйте отдельное виртуальное окружение и зафиксируйте протестированную версию зависимости в requirements-файле или lockfile. Ключ храните вне исходного кода.
Первый запрос
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://api.llm-gate.tech",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=128,
messages=[
{"role": "user", "content": "Объясни SSE в двух предложениях."}
],
)
for block in message.content:
if block.type == "text":
print(block.text)
print(message.usage)Base URL
https://api.llm-gate.tech без ручного добавления /v1/messages: SDK формирует путь метода сам.Асинхронный клиент
import asyncio
import os
from anthropic import AsyncAnthropic
client = AsyncAnthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://api.llm-gate.tech",
)
async def main() -> None:
message = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=128,
messages=[{"role": "user", "content": "Привет!"}],
)
print(message.content)
asyncio.run(main())Async-клиент полезен для веб-сервера и очереди задач, но не отменяет ограничение конкурентности. Не запускайте неограниченное число запросов через asyncio.gather.
Streaming
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Напиши короткий пример."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final_message = stream.get_final_message()Считайте ответ завершённым только после корректного окончания потока. HTTP 200 в начале SSE не гарантирует, что ошибка не придёт позднее.
Повторы и таймауты
Официальный SDK автоматически повторяет часть временных ошибок. Если добавляете собственный retry, не создавайте второй бесконечный цикл поверх встроенного механизма.
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://api.llm-gate.tech",
max_retries=2,
timeout=60.0,
)- 401: проверьте ключ и переменную окружения; повтор без исправления не поможет.
- 404: проверьте ID модели и Base URL.
- 429: дождитесь retry-after и уменьшите параллелизм.
- 500/504/529: ограниченно повторите запрос с backoff и jitter.
Полная таблица находится в справочнике ошибок Claude API.
Официальная документация SDK
Интерфейсы Anthropic, AsyncAnthropic, streaming, retries и timeout сверены с официальным руководством Python SDK. Endpoint и доступные модели на этой странице относятся к Claude API Tech.