이 호환성 레이어는 주로 모델 기능을 테스트하고 비교하기 위한 것이며, 대부분의 사용 사례에서 장기적이거나 프로덕션 환경에 적합한 솔루션으로 간주되지 않습니다. 완전히 작동하고 호환성이 깨지는 변경 사항이 없도록 유지하는 것을 목표로 하지만, 우선순위는 Claude API의 안정성과 효율성입니다.
알려진 호환성 제한 사항에 대한 자세한 내용은 중요한 OpenAI 호환성 제한 사항을 참조하세요.
OpenAI SDK 호환성 기능에 문제가 발생하면 이 호환성 피드백 양식을 통해 피드백을 공유해 주세요.
최상의 경험과 Claude API의 전체 기능 세트(PDF 처리, 인용, 확장 사고, 프롬프트 캐싱)에 액세스하려면 네이티브 Claude API를 사용하세요.
OpenAI SDK 호환성 기능을 사용하려면 다음이 필요합니다:
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-4-8", # 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 사용과의 가장 중요한 차이점은 다음과 같습니다:
strict 매개변수는 무시되므로 도구 사용 JSON이 제공된 스키마를 따른다는 보장이 없습니다. 스키마 준수를 보장하려면 네이티브 Claude API와 Structured Outputs를 사용하세요.지원되지 않는 대부분의 필드는 오류를 발생시키지 않고 조용히 무시됩니다. 이러한 내용은 모두 아래에 문서화되어 있습니다.
프롬프트를 많이 조정했다면 OpenAI에 특화되어 잘 튜닝되었을 가능성이 높습니다. 좋은 시작점으로 Claude Console의 프롬프트 개선 도구를 사용하는 것을 고려하세요.
OpenAI SDK에 대한 대부분의 입력은 Anthropic의 API 매개변수에 명확하게 직접 매핑되지만, 한 가지 뚜렷한 차이점은 시스템 / 개발자 프롬프트의 처리 방식입니다. OpenAI를 통해서는 이 두 프롬프트를 채팅 대화 전체에 배치할 수 있습니다. Anthropic은 초기 시스템 메시지만 지원하므로, API는 모든 시스템/개발자 메시지를 가져와 그 사이에 단일 줄바꿈(\n)을 넣어 함께 연결합니다. 이 전체 문자열은 메시지 시작 부분에 단일 시스템 메시지로 제공됩니다.
thinking 매개변수를 추가하여 확장 사고 기능을 활성화할 수 있습니다. 이는 복잡한 작업에 대한 Claude의 추론을 향상시키지만, OpenAI SDK는 Claude의 상세한 사고 과정을 반환하지 않습니다. 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}},
)속도 제한은 /v1/messages 엔드포인트에 대한 Anthropic의 표준 제한을 따릅니다.
| 필드 | 지원 상태 |
|---|---|
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 | 무시됨. JSON 출력의 경우 네이티브 Claude API와 함께 Structured Outputs를 사용하세요 |
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가 헤더를 자동으로 관리하지만, 헤더를 직접 다뤄야 하는 개발자를 위해 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?