Diese Kompatibilitätsschicht ist in erster Linie dazu gedacht, Modellfähigkeiten zu testen und zu vergleichen, und gilt für die meisten Anwendungsfälle nicht als langfristige oder produktionsreife Lösung. Obwohl sie voll funktionsfähig bleiben und keine Breaking Changes aufweisen soll, liegt die Priorität auf der Zuverlässigkeit und Effektivität der Claude API.
Weitere Informationen zu bekannten Kompatibilitätseinschränkungen findest du unter Wichtige OpenAI-Kompatibilitätseinschränkungen.
Wenn du Probleme mit der OpenAI-SDK-Kompatibilitätsfunktion feststellst, teile uns dein Feedback bitte über dieses Kompatibilitäts-Feedback-Formular mit.
Für die beste Erfahrung und Zugriff auf den vollständigen Funktionsumfang der Claude API (PDF-Verarbeitung, Zitate, erweitertes Denken und Prompt-Caching) verwende die native Claude API.
Um die OpenAI-SDK-Kompatibilitätsfunktion zu nutzen, musst du:
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)Hier sind die wesentlichsten Unterschiede zur Verwendung von OpenAI:
strict-Parameter für Function Calling wird ignoriert, was bedeutet, dass nicht garantiert ist, dass das JSON der Tool-Nutzung dem bereitgestellten Schema folgt. Für garantierte Schema-Konformität verwende die native Claude API mit Structured Outputs.Die meisten nicht unterstützten Felder werden stillschweigend ignoriert, anstatt Fehler zu erzeugen. Diese sind alle unten dokumentiert.
Wenn du viel an deinem Prompt gefeilt hast, ist er wahrscheinlich speziell auf OpenAI abgestimmt. Erwäge die Verwendung des Prompt-Improvers in der Claude Console als guten Ausgangspunkt.
Die meisten Eingaben für das OpenAI SDK lassen sich eindeutig direkt auf die API-Parameter von Anthropic abbilden, aber ein deutlicher Unterschied ist die Behandlung von System-/Developer-Prompts. Diese beiden Prompts können bei OpenAI über eine Chat-Konversation verteilt platziert werden. Da Anthropic nur eine initiale System-Nachricht unterstützt, nimmt die API alle System-/Developer-Nachrichten und fügt sie mit einem einzelnen Zeilenumbruch (\n) dazwischen zusammen. Dieser vollständige String wird dann als einzelne System-Nachricht am Anfang der Nachrichten bereitgestellt.
Du kannst die Fähigkeiten für erweitertes Denken aktivieren, indem du den thinking-Parameter hinzufügst. Während dies Claudes Reasoning für komplexe Aufgaben verbessert, gibt das OpenAI SDK Claudes detaillierten Denkprozess nicht zurück. Für die vollständigen Funktionen des erweiterten Denkens, einschließlich Zugriff auf Claudes schrittweise Reasoning-Ausgabe, verwende die native Claude API.
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}},
)Ratenlimits folgen den Standardlimits von Anthropic für den /v1/messages-Endpunkt.
| Feld | Unterstützungsstatus |
|---|---|
model | Verwende Claude-Modellnamen |
max_tokens | Vollständig unterstützt |
max_completion_tokens | Vollständig unterstützt |
stream | Vollständig unterstützt |
stream_options | Vollständig unterstützt |
top_p | Vollständig unterstützt |
parallel_tool_calls | Vollständig unterstützt |
stop | Alle Stop-Sequenzen ohne Whitespace funktionieren |
temperature | Zwischen 0 und 1 (einschließlich). Werte größer als 1 werden auf 1 begrenzt. |
n | Muss genau 1 sein |
logprobs | Ignoriert |
metadata | Ignoriert |
response_format | Ignoriert. Für JSON-Ausgabe verwende Structured Outputs mit der nativen Claude API |
prediction | Ignoriert |
presence_penalty | Ignoriert |
frequency_penalty | Ignoriert |
seed | Ignoriert |
service_tier | Ignoriert |
audio | Ignoriert |
logit_bias | Ignoriert |
store | Ignoriert |
user | Ignoriert |
modalities | Ignoriert |
top_logprobs | Ignoriert |
reasoning_effort | Ignoriert |
tools- / functions-Feldermessages-Array-Felder| Feld | Unterstützungsstatus |
|---|---|
id | Vollständig unterstützt |
choices[] | Hat immer eine Länge von 1 |
choices[].finish_reason | Vollständig unterstützt |
choices[].index | Vollständig unterstützt |
choices[].message.role | Vollständig unterstützt |
choices[].message.content | Vollständig unterstützt |
choices[].message.tool_calls | Vollständig unterstützt |
object | Vollständig unterstützt |
created | Vollständig unterstützt |
model | Vollständig unterstützt |
finish_reason | Vollständig unterstützt |
content | Vollständig unterstützt |
usage.completion_tokens | Vollständig unterstützt |
usage.prompt_tokens | Vollständig unterstützt |
usage.total_tokens | Vollständig unterstützt |
usage.completion_tokens_details | Immer leer |
usage.prompt_tokens_details | Immer leer |
choices[].message.refusal | Immer leer |
choices[].message.audio | Immer leer |
logprobs | Immer leer |
service_tier | Immer leer |
system_fingerprint | Immer leer |
Die Kompatibilitätsschicht behält konsistente Fehlerformate mit der OpenAI API bei. Die detaillierten Fehlermeldungen werden jedoch nicht äquivalent sein. Verwende die Fehlermeldungen nur für Logging und Debugging.
Während das OpenAI SDK Header automatisch verwaltet, findest du hier die vollständige Liste der von der Claude API unterstützten Header für Entwickler, die direkt damit arbeiten müssen.
| Header | Unterstützungsstatus |
|---|---|
x-ratelimit-limit-requests | Vollständig unterstützt |
x-ratelimit-limit-tokens | Vollständig unterstützt |
x-ratelimit-remaining-requests | Vollständig unterstützt |
x-ratelimit-remaining-tokens | Vollständig unterstützt |
x-ratelimit-reset-requests | Vollständig unterstützt |
x-ratelimit-reset-tokens | Vollständig unterstützt |
retry-after | Vollständig unterstützt |
request-id | Vollständig unterstützt |
openai-version | Immer 2020-10-01 |
authorization | Vollständig unterstützt |
openai-processing-ms | Immer leer |
Was this page helpful?