Совместимость с OpenAI SDK
Anthropic предоставляет слой совместимости, который позволяет использовать OpenAI SDK для тестирования Claude API. Внеся несколько изменений в код, вы можете быстро оценить возможности моделей Anthropic.
Начало работы с OpenAI SDK
Чтобы использовать функцию совместимости с OpenAI SDK, вам необходимо:
- Использовать официальный OpenAI SDK
- Изменить следующее
- Обновите базовый URL, чтобы он указывал на Claude API
- Замените ваш ключ API на ключ API Claude
- Если ваш ключ является персональным ключом или ключом сервисного аккаунта с доступом к нескольким рабочим пространствам, также отправляйте заголовок
anthropic-workspace-idс каждым запросом (например,default_headersв Python SDK илиdefaultHeadersв TypeScript); см. раздел Выбор рабочего пространства - Обновите название модели, чтобы использовать модель Claude
- Ознакомиться со следующими разделами, чтобы узнать, какие функции поддерживаются
Пример быстрого старта
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("ANTHROPIC_API_KEY"), # Your Claude API key
base_url="https://api.anthropic.com/v1/", # the Claude API endpoint
)
response = client.chat.completions.create(
model="claude-opus-5-5", # Claude model name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who are you?"},
],
)
print(response.choices[0].message.content)Важные ограничения совместимости с OpenAI
Поведение API
Вот наиболее существенные отличия от использования OpenAI:
- Параметр
strictдля вызова функций игнорируется, что означает, что JSON при использовании инструментов не гарантированно соответствует предоставленной схеме. Для гарантированного соответствия схеме используйте нативный Claude API со структурированными выводами. - Аудиовход не поддерживается; он будет проигнорирован и удалён из входных данных
- Кэширование подсказок не поддерживается, но оно поддерживается в Anthropic SDK
- Системные сообщения и сообщения разработчика поднимаются и объединяются в поле верхнего уровня
system, где бы они ни находились в разговоре. Чтобы добавить системные инструкции в середине разговора, используйте системные сообщения в середине разговора в нативном Claude API.
Большинство неподдерживаемых полей молча игнорируются, а не вызывают ошибки. Все они задокументированы в следующих разделах.
Соображения о качестве вывода
Если вы много работали над настройкой вашей подсказки, скорее всего, она хорошо настроена именно под OpenAI. Рассмотрите возможность её переработки для Claude с помощью руководства по лучшим практикам составления подсказок.
Поднятие системных сообщений / сообщений разработчика
Большинство входных данных OpenAI SDK напрямую соответствуют параметрам API Anthropic, но одно явное отличие — обработка системных подсказок и подсказок разработчика. В OpenAI эти два типа подсказок могут размещаться в любом месте разговора. Слой совместимости берёт все системные сообщения и сообщения разработчика и объединяет их, разделяя одним символом новой строки (\n). Затем эта полная строка передаётся как поле верхнего уровня system перед всеми сообщениями.
Поддержка размышлений
Вы можете включить размышления, добавив параметр thinking. На текущих моделях размышления являются адаптивными: Claude сам определяет, когда и насколько глубоко размышлять, а на моделях Claude 5 они включены по умолчанию; вручную настраиваемые расширенные размышления являются устаревшим режимом. Хотя размышления улучшают рассуждения Claude при решении сложных задач, OpenAI SDK не возвращает размышления Claude. Для использования всех возможностей размышлений, включая сводные размышления, используйте нативный Claude API.
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Who are you?"}],
extra_body={"thinking": {"type": "enabled", "budget_tokens": 2000}},
)Ограничения скорости
Ограничения скорости соответствуют стандартным ограничениям Anthropic для конечной точки /v1/messages.
Подробная информация о поддержке OpenAI-совместимого API
Поля запроса
Простые поля
| Поле | Статус поддержки |
|---|---|
model | Используйте названия моделей Claude |
max_tokens | Полностью поддерживается |
max_completion_tokens | Полностью поддерживается |
stream | Полностью поддерживается |
stream_options | Полностью поддерживается |
top_p | Передаётся модели. Модели Claude 4.7 и более поздние, а также Claude Mythos Preview возвращают ошибку 400 для любого значения, кроме 0.99 (значение по умолчанию), поэтому не указывайте его. Запрос, в котором заданы и temperature, и top_p, также возвращает ошибку 400. См. Работа с сообщениями. |
parallel_tool_calls | Полностью поддерживается |
stop | Работают все стоп-последовательности, не состоящие из пробельных символов |
temperature | От 0 до 1 (включительно). Значения больше 1 ограничиваются значением 1. На моделях Claude 4.7 и более поздних, а также Claude Mythos Preview любое значение ниже 1 возвращает ошибку 400, поэтому не указывайте его. См. Работа с сообщениями. |
n | Должно быть равно ровно 1 |
logprobs | Игнорируется |
metadata | Игнорируется |
response_format | Игнорируется. Для вывода в формате JSON используйте структурированные выводы с нативным Claude API |
prediction | Игнорируется |
presence_penalty | Игнорируется |
frequency_penalty | Игнорируется |
seed | Игнорируется |
service_tier | Игнорируется |
audio | Игнорируется |
logit_bias | Игнорируется |
store | Игнорируется |
user | Игнорируется |
modalities | Игнорируется |
top_logprobs | Игнорируется |
reasoning_effort | Игнорируется |
Поля tools / functions
Поля tools[n].function
| Поле | Статус поддержки |
|---|---|
name | Полностью поддерживается |
description | Полностью поддерживается |
parameters | Полностью поддерживается |
strict | Игнорируется. Используйте структурированные выводы с нативным Claude API для строгой валидации схемы |
Поля functions[n]
| Поле | Статус поддержки |
|---|---|
name | Полностью поддерживается |
description | Полностью поддерживается |
parameters | Полностью поддерживается |
strict | Игнорируется. Используйте структурированные выводы с нативным Claude API для строгой валидации схемы |
Поля массива messages
Поля для messages[n].role == "developer"
| Поле | Статус поддержки |
|---|---|
content | Полностью поддерживается, но поднимается |
name | Игнорируется |
Поля для messages[n].role == "system"
| Поле | Статус поддержки |
|---|---|
content | Полностью поддерживается, но поднимается |
name | Игнорируется |
Поля для messages[n].role == "user"
| Поле | Вариант | Подполе | Статус поддержки |
|---|---|---|---|
content | string | Полностью поддерживается | |
array, type == "text" | Полностью поддерживается | ||
array, type == "image_url" | url | Полностью поддерживается | |
detail | Игнорируется | ||
array, type == "input_audio" | Игнорируется | ||
array, type == "file" | Игнорируется | ||
name | Игнорируется |
Поля для messages[n].role == "assistant"
| Поле | Вариант | Статус поддержки |
|---|---|---|
content | string | Полностью поддерживается |
array, type == "text" | Полностью поддерживается | |
array, type == "refusal" | Игнорируется | |
tool_calls | Полностью поддерживается | |
function_call | Полностью поддерживается | |
audio | Игнорируется | |
refusal | Игнорируется |
Поля для messages[n].role == "tool"
| Поле | Вариант | Статус поддержки |
|---|---|---|
content | string | Полностью поддерживается |
array, type == "text" | Полностью поддерживается | |
tool_call_id | Полностью поддерживается | |
tool_choice | Поддерживается. Значения "required" и значения с именем функции принудительно вызывают инструмент; Claude Opus 5.5, Claude Sonnet 5.5, Claude Fable 5.1 и Claude Mythos 5.1 не поддерживают принудительное использование инструментов и возвращают ошибку, поэтому на этих моделях используйте "auto". См. Принудительное использование инструментов. | |
name | Игнорируется |
Поля для messages[n].role == "function"
| Поле | Вариант | Статус поддержки |
|---|---|---|
content | string | Полностью поддерживается |
array, type == "text" | Полностью поддерживается | |
tool_choice | Поддерживается. Значения "required" и значения с именем функции принудительно вызывают инструмент; Claude Opus 5.5, Claude Sonnet 5.5, Claude Fable 5.1 и Claude Mythos 5.1 не поддерживают принудительное использование инструментов и возвращают ошибку, поэтому на этих моделях используйте "auto". См. Принудительное использование инструментов. | |
name | Игнорируется |
Поля ответа
| Поле | Статус поддержки |
|---|---|
id | Полностью поддерживается |
choices[] | Всегда будет иметь длину 1 |
choices[].finish_reason | Полностью поддерживается |
choices[].index | Полностью поддерживается |
choices[].message.role | Полностью поддерживается |
choices[].message.content | Полностью поддерживается |
choices[].message.tool_calls | Полностью поддерживается |
object | Полностью поддерживается |
created | Полностью поддерживается |
model | Полностью поддерживается |
finish_reason | Полностью поддерживается |
content | Полностью поддерживается |
usage.completion_tokens | Полностью поддерживается |
usage.prompt_tokens | Полностью поддерживается |
usage.total_tokens | Полностью поддерживается |
usage.completion_tokens_details | Всегда пусто |
usage.prompt_tokens_details | Всегда пусто |
choices[].message.refusal | Всегда пусто |
choices[].message.audio | Всегда пусто |
logprobs | Всегда пусто |
service_tier | Всегда пусто |
system_fingerprint | Всегда пусто |
Совместимость сообщений об ошибках
Слой совместимости поддерживает форматы ошибок, согласованные с OpenAI API. Однако подробные сообщения об ошибках не будут эквивалентны. Используйте сообщения об ошибках только для логирования и отладки.
Совместимость заголовков
Хотя OpenAI SDK автоматически управляет заголовками, вот полный список заголовков, поддерживаемых Claude API, для разработчиков, которым необходимо работать с ними напрямую.
| Заголовок | Статус поддержки |
|---|---|
x-ratelimit-limit-requests | Полностью поддерживается |
x-ratelimit-limit-tokens | Полностью поддерживается |
x-ratelimit-remaining-requests | Полностью поддерживается |
x-ratelimit-remaining-tokens | Полностью поддерживается |
x-ratelimit-reset-requests | Полностью поддерживается |
x-ratelimit-reset-tokens | Полностью поддерживается |
retry-after | Полностью поддерживается |
request-id | Полностью поддерживается |
openai-version | Всегда 2020-10-01 |
authorization | Полностью поддерживается |
openai-processing-ms | Всегда пусто |
Was this page helpful?