Questo livello di compatibilità è principalmente destinato a testare e confrontare le capacità del modello, e non è considerato una soluzione a lungo termine o pronta per la produzione per la maggior parte dei casi d’uso. Sebbene intendiamo mantenerlo completamente funzionale e non apportare modifiche che interrompano la compatibilità, la nostra priorità è l’affidabilità e l’efficacia dell’API Anthropic.

Per maggiori informazioni sulle limitazioni di compatibilità note, vedi Importanti limitazioni di compatibilità OpenAI.

Se riscontri problemi con la funzionalità di compatibilità SDK OpenAI, faccelo sapere qui.

Per la migliore esperienza e l’accesso al set completo di funzionalità dell’API Anthropic (elaborazione PDF, citazioni, pensiero esteso, e caching dei prompt), raccomandiamo di utilizzare l’API Anthropic nativa.

Iniziare con l’SDK OpenAI

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

  1. Utilizzare un SDK OpenAI ufficiale
  2. Modificare quanto segue
    • Aggiornare il tuo URL base per puntare all’API di Anthropic
    • Sostituire la tua chiave API con una chiave API Anthropic
    • Aggiornare il nome del tuo modello per utilizzare un modello Claude
  3. Rivedere la documentazione sottostante per vedere quali funzionalità sono supportate

Esempio di avvio rapido

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # La tua chiave API Anthropic
    base_url="https://api.anthropic.com/v1/"  # Endpoint API di Anthropic
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Nome del modello Anthropic
    messages=[
        {"role": "system", "content": "Sei un assistente utile."},
        {"role": "user", "content": "Chi sei?"}
    ],
)

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

Importanti limitazioni di compatibilità OpenAI

Comportamento dell’API

Ecco le differenze più sostanziali dall’utilizzo di OpenAI:

  • Il parametro strict per la chiamata di funzioni viene ignorato, il che significa che il JSON di utilizzo degli strumenti non è garantito per seguire lo schema fornito.
  • L’input audio non è supportato; verrà semplicemente ignorato e rimosso dall’input
  • Il caching dei prompt non è supportato, ma è supportato nell’SDK Anthropic
  • I messaggi di sistema/sviluppatore vengono elevati e concatenati all’inizio della conversazione, poiché Anthropic supporta solo un singolo messaggio di sistema iniziale.

La maggior parte dei campi non supportati vengono ignorati silenziosamente piuttosto che produrre errori. Questi sono tutti documentati di seguito.

Considerazioni sulla qualità dell’output

Se hai fatto molte modifiche al tuo prompt, è probabile che sia ben sintonizzato specificamente per OpenAI. Considera di utilizzare il nostro miglioratore di prompt nella Console Anthropic come buon punto di partenza.

Elevazione dei messaggi di sistema / sviluppatore

La maggior parte degli input all’SDK OpenAI si mappano chiaramente direttamente ai parametri dell’API di Anthropic, ma una differenza distinta è la gestione dei prompt di sistema / sviluppatore. Questi due prompt possono essere inseriti in tutta una conversazione di chat tramite OpenAI. Poiché Anthropic supporta solo un messaggio di sistema iniziale, prendiamo tutti i messaggi di sistema/sviluppatore e li concateniamo insieme con una singola nuova riga (\n) tra di loro. Questa stringa completa viene quindi fornita come un singolo messaggio di sistema all’inizio dei messaggi.

Supporto per il pensiero esteso

Puoi abilitare le capacità di pensiero esteso aggiungendo il parametro thinking. Sebbene questo migliorerà il ragionamento di Claude per compiti complessi, l’SDK OpenAI non restituirà il processo di pensiero dettagliato di Claude. Per le funzionalità complete di pensiero esteso, incluso l’accesso all’output di ragionamento passo-passo di Claude, utilizza l’API Anthropic nativa.

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Limiti di velocità

I limiti di velocità seguono i limiti standard di Anthropic per l’endpoint /v1/messages.

Supporto dettagliato dell’API compatibile OpenAI

Campi di richiesta

Campi semplici

CampoStato di supporto
modelUtilizza i nomi dei modelli Claude
max_tokensCompletamente supportato
max_completion_tokensCompletamente supportato
streamCompletamente supportato
stream_optionsCompletamente supportato
top_pCompletamente supportato
parallel_tool_callsCompletamente supportato
stopTutte le sequenze di stop non-whitespace funzionano
temperatureTra 0 e 1 (inclusi). Valori maggiori di 1 sono limitati a 1.
nDeve essere esattamente 1
logprobsIgnorato
metadataIgnorato
response_formatIgnorato
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 di risposta

CampoStato di supporto
idCompletamente supportato
choices[]Avrà sempre una lunghezza di 1
choices[].finish_reasonCompletamente supportato
choices[].indexCompletamente supportato
choices[].message.roleCompletamente supportato
choices[].message.contentCompletamente supportato
choices[].message.tool_callsCompletamente supportato
objectCompletamente supportato
createdCompletamente supportato
modelCompletamente supportato
finish_reasonCompletamente supportato
contentCompletamente supportato
usage.completion_tokensCompletamente supportato
usage.prompt_tokensCompletamente supportato
usage.total_tokensCompletamente 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. Raccomandiamo di utilizzare i messaggi di errore solo per il logging e il debugging.

Compatibilità degli header

Mentre l’SDK OpenAI gestisce automaticamente gli header, ecco l’elenco completo degli header supportati dall’API di Anthropic per gli sviluppatori che hanno bisogno di lavorare con essi direttamente.

HeaderStato di supporto
x-ratelimit-limit-requestsCompletamente supportato
x-ratelimit-limit-tokensCompletamente supportato
x-ratelimit-remaining-requestsCompletamente supportato
x-ratelimit-remaining-tokensCompletamente supportato
x-ratelimit-reset-requestsCompletamente supportato
x-ratelimit-reset-tokensCompletamente supportato
retry-afterCompletamente supportato
request-idCompletamente supportato
openai-versionSempre 2020-10-01
authorizationCompletamente supportato
openai-processing-msSempre vuoto