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 dans la plupart des cas d'usage. Bien qu'elle soit conçue pour rester pleinement fonctionnelle et ne pas subir de changements incompatibles, la priorité reste la fiabilité et l'efficacité de l'API Claude.
Pour plus d'informations sur les limitations de compatibilité connues, consultez Limitations importantes de la compatibilité OpenAI.
Si vous rencontrez des problèmes avec la fonctionnalité de compatibilité du 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 de PDF, citations, réflexion étendue et mise en cache des prompts), utilisez l'API Claude native.
Pour utiliser la fonctionnalité de compatibilité du 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-4-8", # 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 respecter le schéma fourni. Pour une conformité garantie au schéma, utilisez l'API Claude native avec les sorties structurées.La plupart des champs non pris en charge sont ignorés silencieusement plutôt que de produire des erreurs. Ils sont tous documentés ci-dessous.
Si vous avez beaucoup ajusté votre prompt, il est probable qu'il soit spécifiquement optimisé pour OpenAI. Envisagez d'utiliser l'améliorateur de prompts dans la Claude Console comme bon point de départ.
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 concerne la gestion des prompts système / développeur. Ces deux types de 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 système/développeur 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 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 renvoie pas le processus de réflexion détaillé de Claude. Pour bénéficier de toutes les fonctionnalités 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-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 | État 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 blancs 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 sorties structurées 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 | État 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. Utilisez les messages d'erreur uniquement 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 | État 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?