Claude Platform Docs
CLI, SDK e librerieLibrerie e integrazioni

Compatibilità con l'SDK OpenAI

Anthropic fornisce un livello di compatibilità che ti consente di utilizzare l'SDK OpenAI per testare la Claude API. Con poche modifiche al codice, puoi valutare rapidamente le capacità dei modelli Anthropic.

Iniziare con l'SDK OpenAI

Per utilizzare la funzionalità di compatibilità con l'SDK OpenAI, dovrai:

  1. Usare un SDK OpenAI ufficiale
  2. Modificare quanto segue
  3. Consultare le sezioni seguenti per sapere quali funzionalità sono supportate

Esempio di avvio rapido

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)

Limitazioni importanti della compatibilità OpenAI

Comportamento dell'API

Ecco le differenze più sostanziali rispetto all'utilizzo di OpenAI:

  • Il parametro strict per il function calling viene ignorato, il che significa che non è garantito che il JSON del "tool use" (uso degli strumenti) segua lo schema fornito. Per una conformità garantita allo schema, usa la Claude API nativa con Structured Outputs.
  • L'input audio non è supportato; verrà ignorato e rimosso dall'input
  • La cache dei prompt non è supportata, ma è supportata negli SDK Anthropic
  • I messaggi system/developer vengono spostati e concatenati all'inizio della conversazione, poiché Anthropic supporta un solo messaggio di sistema iniziale.

La maggior parte dei campi non supportati viene ignorata silenziosamente anziché produrre errori. Sono tutti documentati nelle sezioni seguenti.

Considerazioni sulla qualità dell'output

Se hai apportato molte modifiche al tuo prompt, è probabile che sia ottimizzato specificamente per OpenAI. Valuta di rielaborarlo per Claude utilizzando la guida alle best practice di prompting.

Spostamento dei messaggi system / developer

La maggior parte degli input dell'SDK OpenAI corrisponde direttamente ai parametri dell'API di Anthropic, ma una differenza evidente è la gestione dei prompt system / developer. Tramite OpenAI, questi due prompt possono essere inseriti in qualsiasi punto di una conversazione chat. Poiché Anthropic supporta solo un "system prompt" (prompt 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 unico messaggio di sistema all'inizio dei messaggi.

Supporto al thinking

Puoi abilitare il thinking aggiungendo il parametro thinking. Sui modelli attuali il thinking è adattivo, con Claude che decide quando e quanto approfonditamente pensare, e sui modelli Claude 5 è attivo per impostazione predefinita; l'"extended thinking" (pensiero esteso) configurato manualmente è una modalità legacy. Sebbene il thinking migliori il ragionamento di Claude per compiti complessi, l'SDK OpenAI non restituisce il processo di pensiero dettagliato di Claude. Per le funzionalità complete di thinking, incluso l'accesso all'output di ragionamento passo dopo passo di Claude, usa la Claude API 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}},
)

Limiti di velocità

I "rate limits" (limiti di velocità) seguono i limiti standard di Anthropic per l'endpoint /v1/messages.

Supporto dettagliato dell'API compatibile con OpenAI

Campi della richiesta

Campi semplici

CampoStato del supporto
modelUsa i nomi dei modelli Claude
max_tokensPienamente supportato
max_completion_tokensPienamente supportato
streamPienamente supportato
stream_optionsPienamente supportato
top_pPienamente supportato
parallel_tool_callsPienamente supportato
stopTutte le sequenze di stop non composte da spazi bianchi funzionano
temperatureTra 0 e 1 (inclusi). I valori maggiori di 1 vengono limitati a 1.
nDeve essere esattamente 1
logprobsIgnorato
metadataIgnorato
response_formatIgnorato. Per l'output JSON, usa Structured Outputs con la Claude API nativa
predictionIgnorato
presence_penaltyIgnorato
frequency_penaltyIgnorato
seedIgnorato
service_tierIgnorato
audioIgnorato
logit_biasIgnorato
storeIgnorato
userIgnorato
modalitiesIgnorato
top_logprobsIgnorato
reasoning_effortIgnorato

Campi tools / functions

Campi dell'array messages

Campi della risposta

CampoStato del supporto
idPienamente supportato
choices[]Avrà sempre una lunghezza pari a 1
choices[].finish_reasonPienamente supportato
choices[].indexPienamente supportato
choices[].message.rolePienamente supportato
choices[].message.contentPienamente supportato
choices[].message.tool_callsPienamente supportato
objectPienamente supportato
createdPienamente supportato
modelPienamente supportato
finish_reasonPienamente supportato
contentPienamente supportato
usage.completion_tokensPienamente supportato
usage.prompt_tokensPienamente supportato
usage.total_tokensPienamente supportato
usage.completion_tokens_detailsSempre vuoto
usage.prompt_tokens_detailsSempre vuoto
choices[].message.refusalSempre vuoto
choices[].message.audioSempre vuoto
logprobsSempre vuoto
service_tierSempre vuoto
system_fingerprintSempre vuoto

Compatibilità dei messaggi di errore

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.

Compatibilità degli header

Sebbene l'SDK OpenAI gestisca automaticamente gli header, ecco l'elenco completo degli header supportati dalla Claude API per gli sviluppatori che hanno bisogno di lavorarci direttamente.

HeaderStato del supporto
x-ratelimit-limit-requestsPienamente supportato
x-ratelimit-limit-tokensPienamente supportato
x-ratelimit-remaining-requestsPienamente supportato
x-ratelimit-remaining-tokensPienamente supportato
x-ratelimit-reset-requestsPienamente supportato
x-ratelimit-reset-tokensPienamente supportato
retry-afterPienamente supportato
request-idPienamente supportato
openai-versionSempre 2020-10-01
authorizationPienamente supportato
openai-processing-msSempre vuoto

Was this page helpful?