Совместимость с OpenAI SDK
Anthropic предоставляет слой совместимости, который позволяет использовать OpenAI SDK для тестирования Anthropic API. С помощью нескольких изменений в коде вы можете быстро оценить возможности моделей Anthropic.
Этот слой совместимости в первую очередь предназначен для тестирования и сравнения возможностей моделей и не считается долгосрочным или готовым к производству решением для большинства случаев использования. Хотя мы намерены поддерживать его полную функциональность и не вносить критических изменений, наш приоритет - надежность и эффективность Anthropic API.
Для получения дополнительной информации об известных ограничениях совместимости см. Важные ограничения совместимости с OpenAI.
Если вы столкнетесь с какими-либо проблемами с функцией совместимости OpenAI SDK, пожалуйста, сообщите нам об этом здесь.
Для лучшего опыта и доступа к полному набору функций Anthropic API (обработка PDF, цитирование, расширенное мышление и кэширование промптов), мы рекомендуем использовать нативный Anthropic API.
Начало работы с OpenAI SDK
Чтобы использовать функцию совместимости OpenAI SDK, вам необходимо:
- Использовать официальный OpenAI SDK
- Изменить следующее
- Обновить ваш базовый URL, чтобы он указывал на API Anthropic
- Заменить ваш API ключ на API ключ Anthropic
- Обновить название вашей модели для использования модели Claude
- Просмотреть документацию ниже для понимания поддерживаемых функций
Пример быстрого старта
Важные ограничения совместимости с 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.
Ограничения скорости
Ограничения скорости следуют стандартным ограничениям 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 | Всегда пустое |