Claude Platform Docs
CLI, SDK, dan pustakaPustaka dan integrasi

Kompatibilitas OpenAI SDK

Anthropic menyediakan lapisan kompatibilitas yang memungkinkan Anda menggunakan OpenAI SDK untuk menguji Claude API. Dengan beberapa perubahan kode, Anda dapat dengan cepat mengevaluasi kemampuan model Anthropic.

Memulai dengan OpenAI SDK

Untuk menggunakan fitur kompatibilitas OpenAI SDK, Anda perlu:

  1. Menggunakan OpenAI SDK resmi
  2. Mengubah hal-hal berikut
    • Perbarui base URL Anda agar mengarah ke Claude API
    • Ganti "API key" (kunci API) Anda dengan kunci API Claude
    • Jika kunci Anda adalah kunci personal atau kunci akun layanan dengan akses ke beberapa workspace, kirimkan juga header anthropic-workspace-id pada setiap permintaan (misalnya, default_headers di Python SDK atau defaultHeaders di TypeScript); lihat Memilih workspace
    • Perbarui nama model Anda untuk menggunakan model Claude
  3. Tinjau bagian-bagian berikut untuk mengetahui fitur apa saja yang didukung

Contoh mulai cepat

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-5",  # Claude model name
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ],
)

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

Keterbatasan penting kompatibilitas OpenAI

Perilaku API

Berikut adalah perbedaan paling substansial dibandingkan menggunakan OpenAI:

  • Parameter strict untuk function calling diabaikan, yang berarti JSON "tool use" (penggunaan alat) tidak dijamin mengikuti skema yang diberikan. Untuk kesesuaian skema yang terjamin, gunakan Claude API native dengan Structured Outputs.
  • Input audio tidak didukung; input tersebut akan diabaikan dan dihapus dari input
  • Caching prompt tidak didukung, tetapi didukung di Anthropic SDK
  • Pesan system/developer diangkat (hoisted) dan digabungkan ke awal percakapan, karena Anthropic hanya mendukung satu pesan sistem awal.

Sebagian besar field yang tidak didukung diabaikan secara diam-diam alih-alih menghasilkan error. Semuanya didokumentasikan di bagian-bagian berikut.

Pertimbangan kualitas output

Jika Anda telah melakukan banyak penyesuaian pada prompt Anda, kemungkinan besar prompt tersebut telah disetel dengan baik khusus untuk OpenAI. Pertimbangkan untuk mengerjakannya ulang untuk Claude menggunakan panduan praktik terbaik prompting.

Pengangkatan pesan system / developer

Sebagian besar input ke OpenAI SDK jelas terpetakan langsung ke parameter API Anthropic, tetapi satu perbedaan yang mencolok adalah penanganan "system prompt" (prompt sistem) / prompt developer. Kedua prompt ini dapat ditempatkan di sepanjang percakapan chat melalui OpenAI. Karena Anthropic hanya mendukung satu pesan sistem awal, API mengambil semua pesan system/developer dan menggabungkannya dengan satu baris baru (\n) di antaranya. String lengkap ini kemudian diberikan sebagai satu pesan sistem di awal pesan-pesan.

Dukungan thinking

Anda dapat mengaktifkan thinking dengan menambahkan parameter thinking. Pada model saat ini, thinking bersifat adaptif, dengan Claude memutuskan kapan dan seberapa dalam untuk berpikir, dan pada model Claude 5 fitur ini aktif secara default; "extended thinking" (pemikiran diperpanjang) yang dikonfigurasi secara manual adalah mode lama. Meskipun thinking meningkatkan penalaran Claude untuk tugas-tugas kompleks, OpenAI SDK tidak mengembalikan proses berpikir Claude secara terperinci. Untuk fitur thinking lengkap, termasuk akses ke output penalaran langkah demi langkah Claude, gunakan Claude API native.

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}},
)

Batas laju

"Rate limit" (batas laju) mengikuti batas standar Anthropic untuk endpoint /v1/messages.

Dukungan API kompatibel OpenAI secara terperinci

Field permintaan

Field sederhana

FieldStatus dukungan
modelGunakan nama model Claude
max_tokensDidukung penuh
max_completion_tokensDidukung penuh
streamDidukung penuh
stream_optionsDidukung penuh
top_pDidukung penuh
parallel_tool_callsDidukung penuh
stopSemua stop sequence non-whitespace berfungsi
temperatureAntara 0 dan 1 (inklusif). Nilai lebih besar dari 1 dibatasi menjadi 1.
nHarus tepat 1
logprobsDiabaikan
metadataDiabaikan
response_formatDiabaikan. Untuk output JSON, gunakan Structured Outputs dengan Claude API native
predictionDiabaikan
presence_penaltyDiabaikan
frequency_penaltyDiabaikan
seedDiabaikan
service_tierDiabaikan
audioDiabaikan
logit_biasDiabaikan
storeDiabaikan
userDiabaikan
modalitiesDiabaikan
top_logprobsDiabaikan
reasoning_effortDiabaikan

Field tools / functions

Field array messages

Field respons

FieldStatus dukungan
idDidukung penuh
choices[]Akan selalu memiliki panjang 1
choices[].finish_reasonDidukung penuh
choices[].indexDidukung penuh
choices[].message.roleDidukung penuh
choices[].message.contentDidukung penuh
choices[].message.tool_callsDidukung penuh
objectDidukung penuh
createdDidukung penuh
modelDidukung penuh
finish_reasonDidukung penuh
contentDidukung penuh
usage.completion_tokensDidukung penuh
usage.prompt_tokensDidukung penuh
usage.total_tokensDidukung penuh
usage.completion_tokens_detailsSelalu kosong
usage.prompt_tokens_detailsSelalu kosong
choices[].message.refusalSelalu kosong
choices[].message.audioSelalu kosong
logprobsSelalu kosong
service_tierSelalu kosong
system_fingerprintSelalu kosong

Kompatibilitas pesan error

Lapisan kompatibilitas mempertahankan format error yang konsisten dengan OpenAI API. Namun, pesan error terperincinya tidak akan sama. Gunakan pesan error hanya untuk logging dan debugging.

Kompatibilitas header

Meskipun OpenAI SDK mengelola header secara otomatis, berikut adalah daftar lengkap header yang didukung oleh Claude API bagi developer yang perlu bekerja dengannya secara langsung.

HeaderStatus Dukungan
x-ratelimit-limit-requestsDidukung penuh
x-ratelimit-limit-tokensDidukung penuh
x-ratelimit-remaining-requestsDidukung penuh
x-ratelimit-remaining-tokensDidukung penuh
x-ratelimit-reset-requestsDidukung penuh
x-ratelimit-reset-tokensDidukung penuh
retry-afterDidukung penuh
request-idDidukung penuh
openai-versionSelalu 2020-10-01
authorizationDidukung penuh
openai-processing-msSelalu kosong

Was this page helpful?