Questo livello di compatibilità è pensato principalmente per testare e confrontare le capacità dei modelli e non è considerato una soluzione a lungo termine o pronta per la produzione nella maggior parte dei casi d'uso. Sebbene sia destinato a rimanere pienamente funzionante e a non subire modifiche che ne compromettano la compatibilità, la priorità è l'affidabilità e l'efficacia dell'API di Claude.
Per maggiori informazioni sulle limitazioni di compatibilità note, consulta Limitazioni importanti della compatibilità OpenAI.
Se riscontri problemi con la funzionalità di compatibilità dell'SDK OpenAI, condividi il tuo feedback tramite questo modulo di feedback sulla compatibilità.
Per la migliore esperienza e l'accesso al set completo di funzionalità dell'API di Claude (elaborazione PDF, citazioni, pensiero esteso e cache dei prompt), usa l'API di Claude nativa.
Per utilizzare la funzionalità di compatibilità dell'SDK OpenAI, dovrai:
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)Ecco le differenze più sostanziali rispetto all'utilizzo di OpenAI:
strict per il function calling viene ignorato, il che significa che non è garantito che il JSON di tool use segua lo schema fornito. Per una conformità garantita allo schema, usa l'API di Claude nativa con Structured Outputs.La maggior parte dei campi non supportati viene ignorata silenziosamente anziché produrre errori. Questi sono tutti documentati di seguito.
Se hai dedicato molto tempo a perfezionare il tuo prompt, è probabile che sia ottimizzato specificamente per OpenAI. Considera l'utilizzo del prompt improver nella Claude Console come buon punto di partenza.
La maggior parte degli input dell'SDK OpenAI corrisponde chiaramente e direttamente ai parametri dell'API di Anthropic, ma una differenza distintiva è la gestione dei prompt system / developer. Questi due tipi di prompt possono essere inseriti in qualsiasi punto di una conversazione chat tramite OpenAI. Poiché Anthropic supporta solo un messaggio di sistema iniziale, l'API prende tutti i messaggi system/developer e li concatena insieme con un singolo carattere di nuova riga (\n) tra di essi. Questa stringa completa viene quindi fornita come un singolo messaggio di sistema all'inizio dei messaggi.
Puoi abilitare le capacità di pensiero esteso aggiungendo il parametro thinking. Sebbene questo migliori il ragionamento di Claude per compiti complessi, l'SDK OpenAI non restituisce il processo di pensiero dettagliato di Claude. Per le funzionalità complete del pensiero esteso, incluso l'accesso all'output del ragionamento passo-passo di Claude, usa l'API di Claude nativa.
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}},
)I limiti di velocità seguono i limiti standard di Anthropic per l'endpoint /v1/messages.
| Campo | Stato del supporto |
|---|---|
model | Usa i nomi dei modelli Claude |
max_tokens | Completamente supportato |
max_completion_tokens | Completamente supportato |
stream | Completamente supportato |
stream_options | Completamente supportato |
top_p | Completamente supportato |
parallel_tool_calls | Completamente supportato |
stop | Tutte le sequenze di stop senza spazi vuoti funzionano |
temperature | Tra 0 e 1 (inclusi). I valori maggiori di 1 vengono limitati a 1. |
n | Deve essere esattamente 1 |
logprobs | Ignorato |
metadata | Ignorato |
response_format | Ignorato. Per l'output JSON, usa Structured Outputs con l'API di Claude nativa |
prediction | Ignorato |
presence_penalty | Ignorato |
frequency_penalty | Ignorato |
seed | Ignorato |
service_tier | Ignorato |
audio | Ignorato |
logit_bias | Ignorato |
store | Ignorato |
user | Ignorato |
modalities | Ignorato |
top_logprobs | Ignorato |
reasoning_effort | Ignorato |
tools / functionsmessages| Campo | Stato del supporto |
|---|---|
id | Completamente supportato |
choices[] | Avrà sempre una lunghezza di 1 |
choices[].finish_reason | Completamente supportato |
choices[].index | Completamente supportato |
choices[].message.role | Completamente supportato |
choices[].message.content | Completamente supportato |
choices[].message.tool_calls | Completamente supportato |
object | Completamente supportato |
created | Completamente supportato |
model | Completamente supportato |
finish_reason | Completamente supportato |
content | Completamente supportato |
usage.completion_tokens | Completamente supportato |
usage.prompt_tokens | Completamente supportato |
usage.total_tokens | Completamente supportato |
usage.completion_tokens_details | Sempre vuoto |
usage.prompt_tokens_details | Sempre vuoto |
choices[].message.refusal | Sempre vuoto |
choices[].message.audio | Sempre vuoto |
logprobs | Sempre vuoto |
service_tier | Sempre vuoto |
system_fingerprint | Sempre vuoto |
Il livello di compatibilità mantiene formati di errore coerenti con l'API OpenAI. Tuttavia, i messaggi di errore dettagliati non saranno equivalenti. Usa i messaggi di errore solo per il logging e il debugging.
Sebbene l'SDK OpenAI gestisca automaticamente gli header, ecco l'elenco completo degli header supportati dall'API di Claude per gli sviluppatori che hanno bisogno di lavorarci direttamente.
| Header | Stato del supporto |
|---|---|
x-ratelimit-limit-requests | Completamente supportato |
x-ratelimit-limit-tokens | Completamente supportato |
x-ratelimit-remaining-requests | Completamente supportato |
x-ratelimit-remaining-tokens | Completamente supportato |
x-ratelimit-reset-requests | Completamente supportato |
x-ratelimit-reset-tokens | Completamente supportato |
retry-after | Completamente supportato |
request-id | Completamente supportato |
openai-version | Sempre 2020-10-01 |
authorization | Completamente supportato |
openai-processing-ms | Sempre vuoto |
Was this page helpful?