OpenAI SDK 호환성(베타)
몇 가지 코드 변경으로 OpenAI SDK를 사용하여 Anthropic API를 테스트할 수 있습니다. Anthropic은 최소한의 노력으로 Anthropic 모델 기능을 빠르게 평가할 수 있는 호환성 레이어를 제공합니다.
OpenAI SDK 호환성 기능과 관련된 피드백이나 버그는 여기에 제출하세요.
시작하기 전에
이 호환성 레이어는 최소한의 개발 노력으로 모델 기능을 테스트하고 비교하기 위한 것이며, 대부분의 사용 사례에서 장기적이거나 프로덕션 준비가 된 솔루션으로 간주되지 않습니다. 최상의 경험과 Anthropic API의 전체 기능 세트(PDF 처리, 인용, 확장 사고 및 프롬프트 캐싱)에 액세스하려면 네이티브 Anthropic API를 사용하는 것이 좋습니다.
OpenAI SDK 시작하기
OpenAI SDK 호환성 기능을 사용하려면 다음이 필요합니다:
- 공식 OpenAI SDK 사용
- 다음 사항 변경
- 기본 URL을 Anthropic의 API를 가리키도록 업데이트
- API 키를 Anthropic API 키로 교체
- 모델 이름을 Claude 모델을 사용하도록 업데이트
- 지원되는 기능에 대해 아래 문서 검토
빠른 시작 예제
중요한 OpenAI 호환성 제한 사항
API 동작
OpenAI 사용과의 가장 중요한 차이점은 다음과 같습니다:
- 함수 호출을 위한
strict
매개변수는 무시되며, 이는 도구 사용 JSON이 제공된 스키마를 따른다고 보장되지 않음을 의미합니다. - 오디오 입력은 지원되지 않으며, 단순히 무시되고 입력에서 제거됩니다
- 프롬프트 캐싱은 지원되지 않지만 Anthropic SDK에서는 지원됩니다
- 시스템/개발자 메시지는 대화 시작 부분으로 끌어올려지고 연결됩니다. Anthropic은 단일 초기 시스템 메시지만 지원하기 때문입니다.
지원되지 않는 대부분의 필드는 오류를 발생시키기보다는 조용히 무시됩니다. 이 모든 내용은 아래에 문서화되어 있습니다.
출력 품질 고려 사항
프롬프트를 많이 조정한 경우, 특별히 OpenAI에 맞게 잘 조정되었을 가능성이 높습니다. 좋은 시작점으로 Anthropic Console의 프롬프트 개선 도구를 사용하는 것을 고려해보세요.
시스템 / 개발자 메시지 끌어올리기
OpenAI SDK에 대한 대부분의 입력은 Anthropic의 API 매개변수에 직접 매핑되지만, 한 가지 뚜렷한 차이점은 시스템/개발자 프롬프트의 처리입니다. 이 두 프롬프트는 OpenAI를 통해 채팅 대화 전체에 배치될 수 있습니다. Anthropic은 초기 시스템 메시지만 지원하기 때문에, 모든 시스템/개발자 메시지를 가져와 단일 줄바꿈(\n
)으로 연결합니다. 이 전체 문자열은 메시지 시작 부분에 단일 시스템 메시지로 제공됩니다.
확장 사고 지원
thinking
매개변수를 추가하여 확장 사고 기능을 활성화할 수 있습니다. 이는 복잡한 작업에 대한 Claude의 추론을 향상시키지만, OpenAI SDK는 Claude의 상세한 사고 과정을 반환하지 않습니다. Claude의 단계별 추론 출력을 포함한 전체 확장 사고 기능을 사용하려면 네이티브 Anthropic API를 사용하세요.
속도 제한
속도 제한은 /v1/messages
엔드포인트에 대한 Anthropic의 표준 제한을 따릅니다.
상세 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는 자동으로 헤더를 관리하지만, 직접 헤더를 다뤄야 하는 개발자를 위해 Anthropic의 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 | 항상 비어 있음 |