Отправляйте отзывы или сообщения об ошибках, связанных с функцией совместимости OpenAI SDK, здесь.

Перед началом работы

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

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

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

  1. Использовать официальный SDK OpenAI
  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": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"}
    ],
)

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

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

Поведение API

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

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

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

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

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

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

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

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

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

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Ограничения скорости

Ограничения скорости соответствуют стандартным ограничениям Anthropic для конечной точки /v1/messages.

Подробная поддержка совместимого API OpenAI

Поля запроса

Простые поля

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

Совместимость сообщений об ошибках

Слой совместимости поддерживает согласованные форматы ошибок с API OpenAI. Однако подробные сообщения об ошибках не будут эквивалентными. Мы рекомендуем использовать сообщения об ошибках только для логирования и отладки.

Совместимость заголовков

Хотя SDK OpenAI автоматически управляет заголовками, вот полный список заголовков, поддерживаемых 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Всегда пусто