Cette couche de compatibilité est principalement destinée à tester et comparer les capacités des modèles, et n’est pas considérée comme une solution à long terme ou prête pour la production pour la plupart des cas d’usage. Bien que nous ayons l’intention de la maintenir entièrement fonctionnelle et de ne pas apporter de changements cassants, notre priorité est la fiabilité et l’efficacité de l’API Claude.Pour plus d’informations sur les limitations de compatibilité OpenAI connues, voir Limitations importantes de compatibilité OpenAI.Si vous rencontrez des problèmes avec la fonctionnalité de compatibilité SDK OpenAI, veuillez nous le faire savoir ici.
Pour la meilleure expérience et l’accès à l’ensemble complet des fonctionnalités de l’API Claude (traitement PDF, citations, réflexion étendue, et mise en cache des prompts), nous recommandons d’utiliser l’API Claude native.

Commencer avec le SDK OpenAI

Pour utiliser la fonctionnalité de compatibilité SDK OpenAI, vous devrez :
  1. Utiliser un SDK OpenAI officiel
  2. Modifier les éléments suivants
    • Mettre à jour votre URL de base pour pointer vers l’API Claude
    • Remplacer votre clé API par une clé API Claude
    • Mettre à jour le nom de votre modèle pour utiliser un modèle Claude
  3. Consulter la documentation ci-dessous pour connaître les fonctionnalités supportées

Exemple de démarrage rapide

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # Votre clé API Claude
    base_url="https://api.anthropic.com/v1/"  # le point de terminaison de l'API Claude
)

response = client.chat.completions.create(
    model="claude-sonnet-4-5", # nom du modèle Anthropic
    messages=[
        {"role": "system", "content": "Vous êtes un assistant utile."},
        {"role": "user", "content": "Qui êtes-vous ?"}
    ],
)

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

Limitations importantes de compatibilité OpenAI

Comportement de l’API

Voici les différences les plus substantielles par rapport à l’utilisation d’OpenAI :
  • Le paramètre strict pour l’appel de fonction est ignoré, ce qui signifie que le JSON d’utilisation d’outil n’est pas garanti de suivre le schéma fourni.
  • L’entrée audio n’est pas supportée ; elle sera simplement ignorée et supprimée de l’entrée
  • La mise en cache des prompts n’est pas supportée, mais elle est supportée dans le SDK Anthropic
  • Les messages système/développeur sont hissés et concaténés au début de la conversation, car Anthropic ne supporte qu’un seul message système initial.
La plupart des champs non supportés sont silencieusement ignorés plutôt que de produire des erreurs. Ils sont tous documentés ci-dessous.

Considérations sur la qualité de sortie

Si vous avez fait beaucoup d’ajustements à votre prompt, il est probable qu’il soit bien adapté à OpenAI spécifiquement. Considérez utiliser notre améliorateur de prompt dans la Console Claude comme un bon point de départ.

Hissage des messages système / développeur

La plupart des entrées du SDK OpenAI correspondent clairement directement aux paramètres de l’API d’Anthropic, mais une différence distincte est la gestion des prompts système / développeur. Ces deux prompts peuvent être placés tout au long d’une conversation de chat via OpenAI. Puisque Anthropic ne supporte qu’un message système initial, nous prenons tous les messages système/développeur et les concaténons ensemble avec une seule nouvelle ligne (\n) entre eux. Cette chaîne complète est ensuite fournie comme un seul message système au début des messages.

Support de la réflexion étendue

Vous pouvez activer les capacités de réflexion étendue en ajoutant le paramètre thinking. Bien que cela améliore le raisonnement de Claude pour les tâches complexes, le SDK OpenAI ne retournera pas le processus de pensée détaillé de Claude. Pour les fonctionnalités complètes de réflexion étendue, y compris l’accès à la sortie de raisonnement étape par étape de Claude, utilisez l’API Claude native.
response = client.chat.completions.create(
    model="claude-sonnet-4-5",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Limites de taux

Les limites de taux suivent les limites standard d’Anthropic pour le point de terminaison /v1/messages.

Support détaillé de l’API compatible OpenAI

Champs de requête

Champs simples

ChampStatut de support
modelUtiliser les noms de modèles Claude
max_tokensEntièrement supporté
max_completion_tokensEntièrement supporté
streamEntièrement supporté
stream_optionsEntièrement supporté
top_pEntièrement supporté
parallel_tool_callsEntièrement supporté
stopToutes les séquences d’arrêt non-blanches fonctionnent
temperatureEntre 0 et 1 (inclus). Les valeurs supérieures à 1 sont plafonnées à 1.
nDoit être exactement 1
logprobsIgnoré
metadataIgnoré
response_formatIgnoré
predictionIgnoré
presence_penaltyIgnoré
frequency_penaltyIgnoré
seedIgnoré
service_tierIgnoré
audioIgnoré
logit_biasIgnoré
storeIgnoré
userIgnoré
modalitiesIgnoré
top_logprobsIgnoré
reasoning_effortIgnoré

Champs tools / functions

Champs tools[n].function
ChampStatut de support
nameEntièrement supporté
descriptionEntièrement supporté
parametersEntièrement supporté
strictIgnoré

Champs du tableau messages

Champs pour messages[n].role == "developer"
Les messages développeur sont hissés au début de la conversation dans le cadre du message système initial
ChampStatut de support
contentEntièrement supporté, mais hissé
nameIgnoré

Champs de réponse

ChampStatut de support
idEntièrement supporté
choices[]Aura toujours une longueur de 1
choices[].finish_reasonEntièrement supporté
choices[].indexEntièrement supporté
choices[].message.roleEntièrement supporté
choices[].message.contentEntièrement supporté
choices[].message.tool_callsEntièrement supporté
objectEntièrement supporté
createdEntièrement supporté
modelEntièrement supporté
finish_reasonEntièrement supporté
contentEntièrement supporté
usage.completion_tokensEntièrement supporté
usage.prompt_tokensEntièrement supporté
usage.total_tokensEntièrement supporté
usage.completion_tokens_detailsToujours vide
usage.prompt_tokens_detailsToujours vide
choices[].message.refusalToujours vide
choices[].message.audioToujours vide
logprobsToujours vide
service_tierToujours vide
system_fingerprintToujours vide

Compatibilité des messages d’erreur

La couche de compatibilité maintient des formats d’erreur cohérents avec l’API OpenAI. Cependant, les messages d’erreur détaillés ne seront pas équivalents. Nous recommandons d’utiliser uniquement les messages d’erreur pour la journalisation et le débogage.

Compatibilité des en-têtes

Bien que le SDK OpenAI gère automatiquement les en-têtes, voici la liste complète des en-têtes supportés par l’API Claude pour les développeurs qui ont besoin de travailler avec eux directement.
En-têteStatut de support
x-ratelimit-limit-requestsEntièrement supporté
x-ratelimit-limit-tokensEntièrement supporté
x-ratelimit-remaining-requestsEntièrement supporté
x-ratelimit-remaining-tokensEntièrement supporté
x-ratelimit-reset-requestsEntièrement supporté
x-ratelimit-reset-tokensEntièrement supporté
retry-afterEntièrement supporté
request-idEntièrement supporté
openai-versionToujours 2020-10-01
authorizationEntièrement supporté
openai-processing-msToujours vide