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 qu'elle soit destinée à rester pleinement fonctionnelle et à ne pas subir de changements incompatibles, la priorité est la fiabilité et l'efficacité de l'API Claude.
Pour plus d'informations sur les limitations de compatibilité connues, consultez Limitations importantes de compatibilité avec OpenAI.
Si vous rencontrez des problèmes avec la fonctionnalité de compatibilité avec le SDK OpenAI, veuillez partager vos commentaires via ce formulaire de retour sur la compatibilité.
Pour une expérience optimale et un accès à l'ensemble complet des fonctionnalités de l'API Claude (traitement des PDF, citations, réflexion et mise en cache des prompts), utilisez l'API Claude native.
Pour utiliser la fonctionnalité de compatibilité avec le SDK OpenAI, vous devrez :
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)Voici les différences les plus importantes par rapport à l'utilisation d'OpenAI :
strict pour l'appel de fonctions est ignoré, ce qui signifie que le JSON d'utilisation d'outils n'est pas garanti de suivre le schéma fourni. Pour une conformité garantie au schéma, utilisez l'API Claude native avec les Structured Outputs.La plupart des champs non pris en charge sont ignorés silencieusement plutôt que de produire des erreurs. Tout cela est documenté dans les sections suivantes.
Si vous avez beaucoup affiné votre prompt, il est probablement bien ajusté spécifiquement pour OpenAI. Envisagez de le retravailler pour Claude en utilisant le guide des bonnes pratiques de prompting.
La plupart des entrées du SDK OpenAI correspondent clairement et directement aux paramètres de l'API d'Anthropic, mais une différence notable est la gestion des prompts system / developer. Ces deux prompts peuvent être placés tout au long d'une conversation de chat via OpenAI. Comme Anthropic ne prend en charge qu'un message système initial, l'API prend tous les messages system/developer et les concatène ensemble 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.
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 ; la 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 pensée détaillé de Claude. Pour les fonctionnalités complètes de réflexion, y compris l'accès à la sortie du raisonnement étape par étape de Claude, utilisez l'API Claude 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}},
)Les limites de débit suivent les limites standard d'Anthropic pour le point de terminaison /v1/messages.
| Champ | Statut de prise en charge |
|---|---|
model | Utilisez les noms de modèles Claude |
max_tokens | Entièrement pris en charge |
max_completion_tokens | Entièrement pris en charge |
stream | Entièrement pris en charge |
stream_options | Entièrement pris en charge |
top_p | Entièrement pris en charge |
parallel_tool_calls | Entièrement pris en charge |
stop | Toutes les séquences d'arrêt sans espaces fonctionnent |
temperature | Entre 0 et 1 (inclus). Les valeurs supérieures à 1 sont plafonnées à 1. |
n | Doit être exactement 1 |
logprobs | Ignoré |
metadata | Ignoré |
response_format | Ignoré. Pour une sortie JSON, utilisez les Structured Outputs avec l'API Claude native |
prediction | Ignoré |
presence_penalty | Ignoré |
frequency_penalty | Ignoré |
seed | Ignoré |
service_tier | Ignoré |
audio | Ignoré |
logit_bias | Ignoré |
store | Ignoré |
user | Ignoré |
modalities | Ignoré |
top_logprobs | Ignoré |
reasoning_effort | Ignoré |
tools / functionsmessages| Champ | Statut de prise en charge |
|---|---|
id | Entièrement pris en charge |
choices[] | Aura toujours une longueur de 1 |
choices[].finish_reason | Entièrement pris en charge |
choices[].index | Entièrement pris en charge |
choices[].message.role | Entièrement pris en charge |
choices[].message.content | Entièrement pris en charge |
choices[].message.tool_calls | Entièrement pris en charge |
object | Entièrement pris en charge |
created | Entièrement pris en charge |
model | Entièrement pris en charge |
finish_reason | Entièrement pris en charge |
content | Entièrement pris en charge |
usage.completion_tokens | Entièrement pris en charge |
usage.prompt_tokens | Entièrement pris en charge |
usage.total_tokens | Entièrement pris en charge |
usage.completion_tokens_details | Toujours vide |
usage.prompt_tokens_details | Toujours vide |
choices[].message.refusal | Toujours vide |
choices[].message.audio | Toujours vide |
logprobs | Toujours vide |
service_tier | Toujours vide |
system_fingerprint | Toujours vide |
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.
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 l'API Claude pour les développeurs qui ont besoin de travailler directement avec eux.
| En-tête | Statut de prise en charge |
|---|---|
x-ratelimit-limit-requests | Entièrement pris en charge |
x-ratelimit-limit-tokens | Entièrement pris en charge |
x-ratelimit-remaining-requests | Entièrement pris en charge |
x-ratelimit-remaining-tokens | Entièrement pris en charge |
x-ratelimit-reset-requests | Entièrement pris en charge |
x-ratelimit-reset-tokens | Entièrement pris en charge |
retry-after | Entièrement pris en charge |
request-id | Entièrement pris en charge |
openai-version | Toujours 2020-10-01 |
authorization | Entièrement pris en charge |
openai-processing-ms | Toujours vide |
Was this page helpful?