Этот слой совместимости в первую очередь предназначен для тестирования и сравнения возможностей моделей и не считается долгосрочным или готовым к производству решением для большинства случаев использования. Хотя мы намерены поддерживать его полную функциональность и не вносить критических изменений, наш приоритет - надежность и эффективность Anthropic API.

Для получения дополнительной информации об известных ограничениях совместимости см. Важные ограничения совместимости с OpenAI.

Если вы столкнетесь с какими-либо проблемами с функцией совместимости OpenAI SDK, пожалуйста, сообщите нам об этом здесь.

Для лучшего опыта и доступа к полному набору функций Anthropic API (обработка PDF, цитирование, расширенное мышление и кэширование промптов), мы рекомендуем использовать нативный Anthropic API.

Начало работы с OpenAI SDK

Чтобы использовать функцию совместимости OpenAI SDK, вам необходимо:

  1. Использовать официальный OpenAI SDK
  2. Изменить следующее
    • Обновить ваш базовый URL, чтобы он указывал на API Anthropic
    • Заменить ваш API ключ на API ключ Anthropic
    • Обновить название вашей модели для использования модели Claude
  3. Просмотреть документацию ниже для понимания поддерживаемых функций

Пример быстрого старта

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # Ваш API ключ Anthropic
    base_url="https://api.anthropic.com/v1/"  # Конечная точка API Anthropic
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Название модели Anthropic
    messages=[
        {"role": "system", "content": "Вы полезный помощник."},
        {"role": "user", "content": "Кто вы?"}
    ],
)

print(response.choices[0].message.content)

Важные ограничения совместимости с OpenAI

Поведение API

Вот наиболее существенные различия от использования OpenAI:

  • Параметр strict для вызова функций игнорируется, что означает, что JSON использования инструментов не гарантированно будет следовать предоставленной схеме.
  • Аудио ввод не поддерживается; он будет просто игнорироваться и удаляться из ввода
  • Кэширование промптов не поддерживается, но оно поддерживается в Anthropic SDK
  • Системные/разработческие сообщения поднимаются и объединяются в начале разговора, поскольку Anthropic поддерживает только одно начальное системное сообщение.

Большинство неподдерживаемых полей молча игнорируются, а не вызывают ошибки. Все они документированы ниже.

Соображения качества вывода

Если вы много настраивали свой промпт, он, вероятно, хорошо настроен специально для OpenAI. Рассмотрите использование нашего улучшителя промптов в Anthropic Console в качестве хорошей отправной точки.

Поднятие системных / разработческих сообщений

Большинство входных данных для OpenAI SDK четко отображаются непосредственно на параметры API Anthropic, но одно явное различие - это обработка системных / разработческих промптов. Эти два промпта могут быть размещены в течение всего чат-разговора через OpenAI. Поскольку Anthropic поддерживает только начальное системное сообщение, мы берем все системные/разработческие сообщения и объединяем их вместе с одним переносом строки (\n) между ними. Эта полная строка затем предоставляется как одно системное сообщение в начале сообщений.

Поддержка расширенного мышления

Вы можете включить возможности расширенного мышления, добавив параметр thinking. Хотя это улучшит рассуждения Claude для сложных задач, OpenAI SDK не вернет подробный мыслительный процесс Claude. Для полных функций расширенного мышления, включая доступ к пошаговому выводу рассуждений Claude, используйте нативный Anthropic API.

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    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Полностью поддерживается
parallel_tool_callsПолностью поддерживается
stopВсе последовательности остановки без пробелов работают
temperatureМежду 0 и 1 (включительно). Значения больше 1 ограничиваются до 1.
nДолжно быть точно 1
logprobsИгнорируется
metadataИгнорируется
response_formatИгнорируется
predictionИгнорируется
presence_penaltyИгнорируется
frequency_penaltyИгнорируется
seedИгнорируется
service_tierИгнорируется
audioИгнорируется
logit_biasИгнорируется
storeИгнорируется
userИгнорируется
modalitiesИгнорируется
top_logprobsИгнорируется
reasoning_effortИгнорируется

Поля tools / functions

Поля массива messages

Поля ответа

ПолеСтатус поддержки
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 автоматически управляет заголовками, вот полный список заголовков, поддерживаемых API Anthropic для разработчиков, которым необходимо работать с ними напрямую.

ЗаголовокСтатус поддержки
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Всегда пустое