Lapisan kompatibilitas ini terutama ditujukan untuk menguji dan membandingkan kemampuan model, dan tidak dianggap sebagai solusi jangka panjang atau siap produksi untuk sebagian besar kasus penggunaan. Meskipun dimaksudkan untuk tetap berfungsi penuh dan tidak memiliki perubahan yang merusak, prioritasnya adalah keandalan dan efektivitas Claude API.
Untuk informasi lebih lanjut tentang keterbatasan kompatibilitas yang diketahui, lihat Keterbatasan penting kompatibilitas OpenAI.
Jika Anda mengalami masalah dengan fitur kompatibilitas OpenAI SDK, silakan bagikan umpan balik Anda melalui formulir umpan balik kompatibilitas ini.
Untuk pengalaman terbaik dan akses ke rangkaian fitur lengkap Claude API (pemrosesan PDF, sitasi, pemikiran, dan caching prompt), gunakan Claude API native.
Untuk menggunakan fitur kompatibilitas OpenAI SDK, Anda perlu:
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)Berikut adalah perbedaan paling substansial dibandingkan menggunakan OpenAI:
strict untuk pemanggilan fungsi diabaikan, yang berarti JSON tool_use tidak dijamin mengikuti skema yang diberikan. Untuk jaminan kesesuaian skema, gunakan Claude API native dengan Structured Outputs.Sebagian besar field yang tidak didukung diabaikan secara diam-diam alih-alih menghasilkan error. Semuanya didokumentasikan di bagian-bagian berikut.
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.
Sebagian besar input ke OpenAI SDK jelas dipetakan langsung ke parameter API Anthropic, tetapi satu perbedaan yang mencolok adalah penanganan prompt system / developer. Kedua prompt ini dapat ditempatkan di sepanjang percakapan chat melalui OpenAI. Karena Anthropic hanya mendukung pesan sistem awal, API mengambil semua pesan system/developer dan menggabungkannya bersama dengan satu baris baru (\n) di antaranya. String lengkap ini kemudian diberikan sebagai satu pesan sistem di awal pesan.
Anda dapat mengaktifkan pemikiran dengan menambahkan parameter thinking. Pada model saat ini, pemikiran bersifat adaptif, dengan Claude yang memutuskan kapan dan seberapa dalam untuk berpikir, dan pada model Claude 5 fitur ini aktif secara default; pemikiran diperpanjang yang dikonfigurasi secara manual adalah mode lama. Meskipun pemikiran meningkatkan penalaran Claude untuk tugas-tugas kompleks, OpenAI SDK tidak mengembalikan proses berpikir Claude secara terperinci. Untuk fitur pemikiran 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}},
)"Rate limit" (batas laju) mengikuti batas standar Anthropic untuk endpoint /v1/messages.
| Field | Status dukungan |
|---|---|
model | Gunakan nama model Claude |
max_tokens | Didukung penuh |
max_completion_tokens | Didukung penuh |
stream | Didukung penuh |
stream_options | Didukung penuh |
top_p | Didukung penuh |
parallel_tool_calls | Didukung penuh |
stop | Semua stop sequence non-spasi berfungsi |
temperature | Antara 0 dan 1 (inklusif). Nilai yang lebih besar dari 1 dibatasi pada 1. |
n | Harus tepat 1 |
logprobs | Diabaikan |
metadata | Diabaikan |
response_format | Diabaikan. Untuk output JSON, gunakan Structured Outputs dengan Claude API native |
prediction | Diabaikan |
presence_penalty | Diabaikan |
frequency_penalty | Diabaikan |
seed | Diabaikan |
service_tier | Diabaikan |
audio | Diabaikan |
logit_bias | Diabaikan |
store | Diabaikan |
user | Diabaikan |
modalities | Diabaikan |
top_logprobs | Diabaikan |
reasoning_effort | Diabaikan |
tools / functionsmessages| Field | Status dukungan |
|---|---|
id | Didukung penuh |
choices[] | Akan selalu memiliki panjang 1 |
choices[].finish_reason | Didukung penuh |
choices[].index | Didukung penuh |
choices[].message.role | Didukung penuh |
choices[].message.content | Didukung penuh |
choices[].message.tool_calls | Didukung penuh |
object | Didukung penuh |
created | Didukung penuh |
model | Didukung penuh |
finish_reason | Didukung penuh |
content | Didukung penuh |
usage.completion_tokens | Didukung penuh |
usage.prompt_tokens | Didukung penuh |
usage.total_tokens | Didukung penuh |
usage.completion_tokens_details | Selalu kosong |
usage.prompt_tokens_details | Selalu kosong |
choices[].message.refusal | Selalu kosong |
choices[].message.audio | Selalu kosong |
logprobs | Selalu kosong |
service_tier | Selalu kosong |
system_fingerprint | Selalu kosong |
Lapisan kompatibilitas mempertahankan format error yang konsisten dengan OpenAI API. Namun, pesan error yang terperinci tidak akan setara. Gunakan pesan error hanya untuk logging dan debugging.
Meskipun OpenAI SDK secara otomatis mengelola header, berikut adalah daftar lengkap header yang didukung oleh Claude API bagi pengembang yang perlu bekerja dengannya secara langsung.
| Header | Status Dukungan |
|---|---|
x-ratelimit-limit-requests | Didukung penuh |
x-ratelimit-limit-tokens | Didukung penuh |
x-ratelimit-remaining-requests | Didukung penuh |
x-ratelimit-remaining-tokens | Didukung penuh |
x-ratelimit-reset-requests | Didukung penuh |
x-ratelimit-reset-tokens | Didukung penuh |
retry-after | Didukung penuh |
request-id | Didukung penuh |
openai-version | Selalu 2020-10-01 |
authorization | Didukung penuh |
openai-processing-ms | Selalu kosong |
Was this page helpful?