Source: https://aiprimetech.io/ru/learn/openai-compatible-claude-api/ [Главная](/ru/) / [Обучение](/ru/learn/) / Используйте Claude с OpenAI SDK: конечная точка, совместимая с OpenAI, потоковая передача, инструменты и ограничения # Используйте Claude с OpenAI SDK: совместимая с OpenAI конечная точка, потоковая передача, инструменты и ограничения Код, написанный для OpenAI SDK, может вызывать Claude без переработки: укажите в base_url адрес шлюза /v1, используйте ключ шлюза и идентификатор модели Claude. Конечная точка принимает запросы Chat Completions, передаёт потоковые ответы в том же формате и поддерживает вызов функций. Некоторые возможности Claude доступны только в нативном формате Anthropic; в последнем разделе объясняется, когда стоит перейти на него. ## Сведения о конечной точке | Параметр | Значение | Базовый URL | https://aiprimetech.io/v1 | Конечная точка чата | POST https://aiprimetech.io/v1/chat/completions | Список моделей | GET https://aiprimetech.io/v1/models | Аутентификация | Authorization: Bearer ; 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](/ru/blog/streaming-api-guide/). ## Вызов функций 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](/ru/learn/anthropic-python-sdk/) и настройка [Руководство по Vercel AI SDK](/ru/learn/use-claude-api-with-vercel-ai-sdk/) описывают этот вариант. ## Устранение неполадок | Что вы видите | Причина | Решение | Ошибка разбора JSON, ответ начинается с < | base_url без /v1 | https://aiprimetech.io/v1 | 404 page not found | /v1 дважды | Ровно один /v1 | 401 Invalid API key | Ключ отсутствует в процессе или указан неверно | Проверьте переменную; ключ относится к одному шлюзу | Модель не поддерживается | Старый идентификатор модели с датой или идентификатор с опечаткой | Используйте идентификатор из таблицы выше | 'none' is not supported | reasoning_effort="none" | Используйте low или выше либо не указывайте его | 429 Concurrency limit exceeded for user | Слишком много одновременных запросов | Ограничьте число параллельных запросов; см. [ограничения частоты запросов и повторные попытки](/ru/blog/rate-limits-and-retries/) | Тайм-ауты при длинных ответах | Долгий запрос без потоковой передачи | Используйте потоковую передачу или увеличьте тайм-аут клиента ## Часто задаваемые вопросы Можно ли использовать 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](/register) AI Prime Tech — независимый API-шлюз. Он не связан с Anthropic, не одобрен этой компанией и не является её реселлером. Claude и названия связанных моделей — товарные знаки их соответствующих владельцев. ## Другие руководства по Claude API [Как получить ключ Claude API](/ru/learn/how-to-get-a-claude-api-key/)[Как устроены цены Claude API](/ru/learn/claude-api-pricing-explained/)[Самый дешевый способ использования API Claude](/ru/learn/cheapest-way-to-use-claude-api/)[Безлимитный Cursor с API Claude](/learn/use-claude-api-with-cursor/)[Безлимитный доступ к Claude Code](/ru/learn/use-claude-api-with-claude-code/)[Шлюз API Claude и прямой доступ к Anthropic: сравнение](/ru/learn/claude-api-vs-anthropic-direct/)[Объяснение моделей Claude: сравнение Claude Opus, Sonnet, Haiku и Fable — все модели Claude API, названия моделей Anthropic и цены (2026)](/ru/learn/claude-api-models-compared/)[Оплата API Claude криптовалютой](/ru/learn/claude-api-with-crypto-payment/)[Доступ к API Claude без листа ожидания](/ru/learn/claude-api-without-waitlist/)[Как сократить расход токенов Claude](/ru/learn/how-to-reduce-claude-token-usage/)[Безлимитный Cline с API Claude](/ru/learn/use-claude-api-with-cline/)[Безлимитный Roo Code с API Claude](/ru/learn/use-claude-api-with-roo-code/)[Безлимитный Claude в IDE JetBrains](/ru/learn/use-claude-api-with-jetbrains/)[Aider с Claude через шлюз: ANTHROPIC_API_BASE, файлы конфигурации, режим архитектора и исправления](/ru/learn/use-claude-api-with-aider/)[Безлимитный Claude в VS Code](/ru/learn/use-claude-api-with-vscode/)[Конфигурация OpenCode для Claude: настройка opencode.json, модели и распространённые ошибки](/ru/learn/use-claude-api-with-opencode/)[Hermes Agent с Claude через шлюз: настройка пользовательского провайдера, контроль расходов и исправления](/ru/learn/run-hermes-agent-with-claude-api/)[Запуск OpenClaw с Claude без ограничений](/ru/learn/run-openclaw-with-claude-api/)[Что означает API, совместимый с Anthropic](/ru/learn/anthropic-compatible-api/)[Ключ API Claude Code — ANTHROPIC_API_KEY: как получить, настроить и когда вместо него использовать claude setup-token](/ru/learn/claude-code-api-key-setup/)[Расходы на API Claude Code — цены и способы их снизить](/ru/learn/claude-code-api-costs/)[Объяснение ошибок API Claude: ошибка сервера 500, перегрузка 529, лимит запросов 429, некорректный запрос 400 — и исправление каждой из них](/ru/learn/claude-api-errors-troubleshooting/)[Как купить кредиты Claude API — и почему кредиты Claude лучше любого предложения «купить аккаунт Claude»](/ru/learn/buy-claude-api-credits/)[Бесплатный API Claude: существует ли бесплатный ключ API Claude и что действительно бесплатно в 2026?](/ru/learn/claude-api-free-trial/)[API Claude или подписка Claude Pro/Max — что выбрать](/ru/learn/claude-api-vs-subscription/)[Codex CLI с пользовательским провайдером: config.toml, модели GPT и Claude, расширение для IDE и исправления](/ru/learn/use-claude-api-with-codex/)[Подключение Claude к n8n](/ru/learn/use-claude-api-with-n8n/)[Маршрутизация LiteLLM к Claude](/ru/learn/use-claude-api-with-litellm/)[Использование Claude в Kilo Code](/ru/learn/use-claude-api-with-kilo-code/)[GitHub Copilot Chat с Claude через шлюз: настройка Custom Endpoint, режим агента и исправления](/ru/learn/use-claude-api-with-github-copilot/)[Подключите Zed к Claude через шлюз](/ru/learn/use-claude-api-with-zed/)[Подключите Cherry Studio к Claude](/ru/learn/use-claude-api-with-cherry-studio/)[ChatAnthropic в LangChain: импорт, base_url, потоковая передача, инструменты и ошибки](/ru/learn/use-claude-api-with-langchain/)[Anthropic Python SDK: установка, настройка base_url, потоковая передача и обработка ошибок](/ru/learn/anthropic-python-sdk/)[Claude с Vercel AI SDK: baseURL в createAnthropic, потоковая передача и устранение проблем](/ru/learn/use-claude-api-with-vercel-ai-sdk/)[Используйте Factory Droid с Claude](/ru/learn/use-claude-api-with-factory-droid/)[Как устроен API Claude Code](/ru/learn/claude-code-api/)[Интеграция API Claude в ваше приложение](/ru/learn/claude-api-integration/)[Как пользоваться Claude без ограничений — и почему «взломанного Claude Code» не существует](/ru/learn/get-unlimited-claude-usage/)