Главная / Обучение / Используйте Claude с OpenAI SDK: конечная точка, совместимая с OpenAI, потоковая передача, инструменты и ограничения
OpenAI SDK + Claude. Два физических соединителя взаимодополняющей формы соединяют одно окно с кодом с другим — наглядная метафора совместимости SDK.

Используйте Claude с OpenAI SDK: совместимая с OpenAI конечная точка, потоковая передача, инструменты и ограничения

Код, написанный для OpenAI SDK, может вызывать Claude без переработки: укажите в base_url адрес шлюза /v1, используйте ключ шлюза и идентификатор модели Claude. Конечная точка принимает запросы Chat Completions, передаёт потоковые ответы в том же формате и поддерживает вызов функций. Некоторые возможности Claude доступны только в нативном формате Anthropic; в последнем разделе объясняется, когда стоит перейти на него.

Сведения о конечной точке

Параметр Значение
Базовый URLhttps://aiprimetech.io/v1
Конечная точка чатаPOST https://aiprimetech.io/v1/chat/completions
Список моделейGET https://aiprimetech.io/v1/models
АутентификацияAuthorization: Bearer <key>; x-api-key также принимается
МоделиИдентификаторы Claude, например claude-sonnet-5; идентификаторы GPT с ключом из группы Codex

Python

терминал
pip install openai
app.py
import os
from openai import OpenAI

client = OpenAI(base_url="https://aiprimetech.io/v1", api_key=os.environ["AIPRIME_API_KEY"])

resp = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain idempotency keys in two sentences."},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

base_url должен заканчиваться на /v1: SDK добавляет /chat/completions к нему. Без /v1 запрос попадает на сайт и возвращает HTML; при /v1 дважды возвращает 404 page not found.

Node.js

app.mjs
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://aiprimetech.io/v1", apiKey: process.env.AIPRIME_API_KEY });

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Write a haiku about retries." }],
});
console.log(resp.choices[0].message.content);

Потоковая передача

stream.py
stream = client.chat.completions.create(
    model="claude-sonnet-5",
    max_tokens=2048,
    stream=True,
    stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "Outline a zero-downtime migration."}],
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage)

Используйте потоковую передачу для длинных ответов: обычный запрос должен завершиться до истечения тайм-аута клиента, а потоковый — нет. include_usage добавляет финальный фрагмент с количеством токенов. Подробнее о том, почему это важно, — в потоковой передаче ответов LLM.

Вызов функций

tools.py
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="claude-sonnet-5", max_tokens=512, tools=tools,
    messages=[{"role": "user", "content": "What is the weather in Paris?"}],
)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, call.function.arguments)   # get_weather {"city": "Paris"}

Ответ приходит с finish_reason: "tool_calls" и в стиле OpenAI tool_calls. Выполните функцию, добавьте tool сообщение с результатом и соответствующим tool_call_id, затем выполните повторный вызов — точно так же, как с моделями OpenAI.

Рассуждения и размышления

reasoning_effort соответствует настройке усилий Claude и принимает low, medium, high, xhigh или max. Значение none отклоняется. Когда модель размышляет, её рассуждения поступают в отдельном reasoning_content поле рядом с content, поэтому код, который читает message.content продолжает работать без изменений.

reasoning.py
resp = client.chat.completions.create(
    model="claude-opus-5-5", max_tokens=4096, reasoning_effort="high",
    messages=[{"role": "user", "content": "Find the bug in this function: ..."}],
)

Модели

Идентификатор модели Для каких задач
claude-sonnet-5Основной выбор для программирования и работы с агентами: быстрая, мощная, со средней стоимостью.
claude-opus-5-5Более сложные рассуждения, масштабный рефакторинг, длительная работа агентов.
claude-fable-5-1Самая мощная и дорогая; используйте её для наиболее сложных задач.
claude-haiku-4-5Недорогая и быстрая: заголовки, краткие изложения, классификация, небольшие шаги.

Используйте эти идентификаторы в точности как указано. Старые идентификаторы с датами, такие как claude-3-5-sonnet-20241022 по-прежнему встречаются в некоторых списках моделей, но не обслуживаются и возвращают ошибку о неподдерживаемой модели.

Когда стоит использовать нативный API Anthropic

Формат OpenAI поддерживает чат, потоковую передачу, инструменты и изображения. Используйте собственный формат Messages от Anthropic на том же шлюзе, если вам нужны явные точки разделения для кеширования промптов, блоки размышлений, передаваемые между ходами диалога, PDF-документы или ссылки на источники. руководство по Anthropic Python SDK и настройка Руководство по Vercel AI SDK описывают этот вариант.

Устранение неполадок

Что вы видите Причина Решение
Ошибка разбора JSON, ответ начинается с <base_url без /v1https://aiprimetech.io/v1
404 page not found/v1 дваждыРовно один /v1
401 Invalid API keyКлюч отсутствует в процессе или указан неверноПроверьте переменную; ключ относится к одному шлюзу
Модель не поддерживаетсяСтарый идентификатор модели с датой или идентификатор с опечаткойИспользуйте идентификатор из таблицы выше
'none' is not supportedreasoning_effort="none"Используйте low или выше либо не указывайте его
429 Concurrency limit exceeded for userСлишком много одновременных запросовОграничьте число параллельных запросов; см. ограничения частоты запросов и повторные попытки
Тайм-ауты при длинных ответахДолгий запрос без потоковой передачиИспользуйте потоковую передачу или увеличьте тайм-аут клиента

Часто задаваемые вопросы

Можно ли использовать Claude с OpenAI SDK?
Да, через совместимую с OpenAI конечную точку: задайте base_url равным адресу шлюза с /v1, используйте API-ключ шлюза и идентификатор модели Claude, например claude-sonnet-5. Потоковая передача и вызов функций работают в формате OpenAI.
Какой базовый URL использовать для Claude в OpenAI SDK?
URL шлюза, оканчивающийся на /v1, например https://aiprimetech.io/v1. SDK добавляет /chat/completions.
Работает ли вызов функций с Claude через формат OpenAI?
Да. Передайте tools в формате OpenAI; Claude возвращает tool_calls со значением tool_calls в finish_reason, а вы отвечаете сообщениями tool, как обычно.
Когда стоит использовать нативный API Anthropic?
Когда вам нужны явное кеширование промптов, блоки размышлений между ходами диалога, ввод PDF или ссылки на источники. Эти возможности входят в формат Messages от Anthropic.
Начните использовать Claude за несколько минут

Получите ключ API — учётная запись Anthropic и запись в лист ожидания не нужны.

Получить ключ API

AI Prime Tech — независимый API-шлюз. Он не связан с Anthropic, не одобрен этой компанией и не является её реселлером. Claude и названия связанных моделей — товарные знаки их соответствующих владельцев.

Другие руководства по Claude API

Как получить ключ Claude APIКак устроены цены Claude APIСамый дешевый способ использования API ClaudeБезлимитный Cursor с API ClaudeБезлимитный доступ к Claude CodeШлюз API Claude и прямой доступ к Anthropic: сравнениеОбъяснение моделей Claude: сравнение Claude Opus, Sonnet, Haiku и Fable — все модели Claude API, названия моделей Anthropic и цены (2026)Оплата API Claude криптовалютойДоступ к API Claude без листа ожиданияКак сократить расход токенов ClaudeБезлимитный Cline с API ClaudeБезлимитный Roo Code с API ClaudeБезлимитный Claude в IDE JetBrainsAider с Claude через шлюз: ANTHROPIC_API_BASE, файлы конфигурации, режим архитектора и исправленияБезлимитный Claude в VS CodeКонфигурация OpenCode для Claude: настройка opencode.json, модели и распространённые ошибкиHermes Agent с Claude через шлюз: настройка пользовательского провайдера, контроль расходов и исправленияЗапуск OpenClaw с Claude без ограниченийЧто означает API, совместимый с AnthropicКлюч API Claude Code — ANTHROPIC_API_KEY: как получить, настроить и когда вместо него использовать claude setup-tokenРасходы на API Claude Code — цены и способы их снизитьОбъяснение ошибок API Claude: ошибка сервера 500, перегрузка 529, лимит запросов 429, некорректный запрос 400 — и исправление каждой из нихКак купить кредиты Claude API — и почему кредиты Claude лучше любого предложения «купить аккаунт Claude»Бесплатный API Claude: существует ли бесплатный ключ API Claude и что действительно бесплатно в 2026?API Claude или подписка Claude Pro/Max — что выбратьCodex CLI с пользовательским провайдером: config.toml, модели GPT и Claude, расширение для IDE и исправленияПодключение Claude к n8nМаршрутизация LiteLLM к ClaudeИспользование Claude в Kilo CodeGitHub Copilot Chat с Claude через шлюз: настройка Custom Endpoint, режим агента и исправленияПодключите Zed к Claude через шлюзПодключите Cherry Studio к ClaudeChatAnthropic в LangChain: импорт, base_url, потоковая передача, инструменты и ошибкиAnthropic Python SDK: установка, настройка base_url, потоковая передача и обработка ошибокClaude с Vercel AI SDK: baseURL в createAnthropic, потоковая передача и устранение проблемИспользуйте Factory Droid с ClaudeКак устроен API Claude CodeИнтеграция API Claude в ваше приложениеКак пользоваться Claude без ограничений — и почему «взломанного Claude Code» не существует

Другие гайды по Claude API

Что означает API, совместимый с AnthropicAnthropic Python SDK: установка, настройка base_url, потоковая передача и обработка ошибокКак купить кредиты API ClaudeСамый дешевый способ использования API ClaudeОбъяснение ошибок API Claude: ошибка сервера 500, перегрузка 529, лимит запросов 429, некорректный запрос 400 — и исправление каждой из нихБесплатный API Claude: существует ли бесплатный ключ API Claude и что действительно бесплатно в 2026?Интеграция API Claude в ваше приложениеОбъяснение моделей Claude: сравнение Claude Opus, Sonnet, Haiku и Fable — все модели Claude API, названия моделей Anthropic и цены (2026)Как устроены цены Claude APIШлюз API Claude и прямой доступ к Anthropic: сравнениеAPI Claude или подписка Claude Pro/Max — что выбратьОплата API Claude криптовалютойДоступ к API Claude без листа ожиданияКак устроен API Claude CodeРасходы на API Claude Code — цены и способы их снизитьКлюч API Claude Code — ANTHROPIC_API_KEY: как получить, настроить и когда вместо него использовать claude setup-tokenКак получить безлимитный доступ к ClaudeКак получить ключ Claude APIКак сократить расход токенов ClaudeHermes Agent с Claude через шлюз: настройка пользовательского провайдера, контроль расходов и исправленияЗапуск OpenClaw с Claude без ограниченийЧто означает безлимитный доступ к API ClaudeКак получить безлимитный ключ API ClaudeБезлимитное использование Claude Code — без ограничений на токеныБезлимитный доступ к Claude Opus 4.8Безлимитное использование Claude — тарифы и ценыAider с Claude через шлюз: ANTHROPIC_API_BASE, файлы конфигурации, режим архитектора и исправленияПодключите Cherry Studio к ClaudeБезлимитный доступ к Claude CodeБезлимитный Cline с API ClaudeCodex CLI с пользовательским провайдером: config.toml, модели GPT и Claude, расширение для IDE и исправленияРабота в Cursor с безлимитным доступом к ClaudeИспользуйте Factory Droid с ClaudeGitHub Copilot Chat с Claude через шлюз: настройка Custom Endpoint, режим агента и исправленияБезлимитный Claude в IDE JetBrainsИспользование Claude в Kilo CodeChatAnthropic в LangChain: импорт, base_url, потоковая передача, инструменты и ошибкиМаршрутизация LiteLLM к ClaudeПодключение Claude к n8nКонфигурация OpenCode для Claude: настройка opencode.json, модели и распространённые ошибкиБезлимитный Roo Code с API ClaudeClaude с Vercel AI SDK: baseURL в createAnthropic, потоковая передача и устранение проблемБезлимитный Claude в VS CodeПодключите Zed к Claude через шлюз