Claude Platform Docs
CLI, SDK et bibliothèquesBibliothèques et intégrations

Compatibilité avec le SDK OpenAI

Anthropic fournit une couche de compatibilité qui vous permet d'utiliser le SDK OpenAI pour tester la Claude API. Avec quelques modifications de code, vous pouvez évaluer rapidement les capacités des modèles Anthropic.

Premiers pas avec le SDK OpenAI

Pour utiliser la fonctionnalité de compatibilité avec le SDK OpenAI, vous devez :

  1. Utiliser un SDK OpenAI officiel
  2. Modifier les éléments suivants
  3. Consulter les sections suivantes pour connaître les fonctionnalités prises en charge

Exemple de démarrage rapide

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)

Limitations importantes de la compatibilité OpenAI

Comportement de l'API

Voici les différences les plus importantes par rapport à l'utilisation d'OpenAI :

  • Le paramètre strict pour l'appel de fonctions est ignoré, ce qui signifie que le JSON d'utilisation d'outils n'est pas garanti de respecter le schéma fourni. Pour une conformité garantie au schéma, utilisez la Claude API native avec les sorties structurées.
  • L'entrée audio n'est pas prise en charge ; elle sera ignorée et supprimée de l'entrée.
  • La « prompt caching » (mise en cache des prompts) n'est pas prise en charge, mais elle l'est dans les SDK Anthropic.
  • Les messages système/développeur sont remontés et concaténés au début de la conversation, car Anthropic ne prend en charge qu'un seul message système initial.

La plupart des champs non pris en charge sont ignorés silencieusement plutôt que de produire des erreurs. Ils sont tous documentés dans les sections suivantes.

Considérations sur la qualité des sorties

Si vous avez beaucoup ajusté votre prompt, il est probablement bien adapté à OpenAI spécifiquement. Envisagez de le retravailler pour Claude à l'aide du guide des meilleures pratiques de prompting.

Remontée des messages système / développeur

La plupart des entrées du SDK OpenAI correspondent directement aux paramètres de l'API d'Anthropic, mais une différence notable concerne la gestion des prompts système / développeur. Ces deux prompts peuvent être placés n'importe où dans une conversation via OpenAI. Comme Anthropic ne prend en charge qu'un message système initial, l'API prend tous les messages système/développeur et les concatène avec un seul saut de ligne (\n) entre eux. Cette chaîne complète est ensuite fournie comme un unique message système au début des messages.

Prise en charge de la réflexion

Vous pouvez activer la réflexion en ajoutant le paramètre thinking. Sur les modèles actuels, la réflexion est adaptative, Claude décidant quand et avec quelle profondeur réfléchir, et sur les modèles Claude 5, elle est activée par défaut ; l'« extended thinking » (réflexion étendue) configurée manuellement est un mode hérité. Bien que la réflexion améliore le raisonnement de Claude pour les tâches complexes, le SDK OpenAI ne renvoie pas le processus de réflexion détaillé de Claude. Pour bénéficier de toutes les fonctionnalités de réflexion, y compris l'accès au raisonnement étape par étape de Claude, utilisez la 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}},
)

Limites de débit

Les « rate limits » (limites de débit) suivent les limites standard d'Anthropic pour le point de terminaison /v1/messages.

Prise en charge détaillée de l'API compatible OpenAI

Champs de requête

Champs simples

ChampÉtat de prise en charge
modelUtilisez les noms de modèles Claude
max_tokensEntièrement pris en charge
max_completion_tokensEntièrement pris en charge
streamEntièrement pris en charge
stream_optionsEntièrement pris en charge
top_pEntièrement pris en charge
parallel_tool_callsEntièrement pris en charge
stopToutes les séquences d'arrêt sans espaces fonctionnent
temperatureEntre 0 et 1 (inclus). Les valeurs supérieures à 1 sont plafonnées à 1.
nDoit être exactement 1
logprobsIgnoré
metadataIgnoré
response_formatIgnoré. Pour une sortie JSON, utilisez les sorties structurées avec la Claude API native
predictionIgnoré
presence_penaltyIgnoré
frequency_penaltyIgnoré
seedIgnoré
service_tierIgnoré
audioIgnoré
logit_biasIgnoré
storeIgnoré
userIgnoré
modalitiesIgnoré
top_logprobsIgnoré
reasoning_effortIgnoré

Champs tools / functions

Champs du tableau messages

Champs de réponse

ChampÉtat de prise en charge
idEntièrement pris en charge
choices[]Aura toujours une longueur de 1
choices[].finish_reasonEntièrement pris en charge
choices[].indexEntièrement pris en charge
choices[].message.roleEntièrement pris en charge
choices[].message.contentEntièrement pris en charge
choices[].message.tool_callsEntièrement pris en charge
objectEntièrement pris en charge
createdEntièrement pris en charge
modelEntièrement pris en charge
finish_reasonEntièrement pris en charge
contentEntièrement pris en charge
usage.completion_tokensEntièrement pris en charge
usage.prompt_tokensEntièrement pris en charge
usage.total_tokensEntièrement pris en charge
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. N'utilisez les messages d'erreur que 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 pris en charge par la Claude API pour les développeurs qui ont besoin de les manipuler directement.

En-têteÉtat de prise en charge
x-ratelimit-limit-requestsEntièrement pris en charge
x-ratelimit-limit-tokensEntièrement pris en charge
x-ratelimit-remaining-requestsEntièrement pris en charge
x-ratelimit-remaining-tokensEntièrement pris en charge
x-ratelimit-reset-requestsEntièrement pris en charge
x-ratelimit-reset-tokensEntièrement pris en charge
retry-afterEntièrement pris en charge
request-idEntièrement pris en charge
openai-versionToujours 2020-10-01
authorizationEntièrement pris en charge
openai-processing-msToujours vide

Was this page helpful?