Diese Kompatibilitätsschicht ist hauptsächlich dazu gedacht, Modellfähigkeiten zu testen und zu vergleichen, und wird nicht als langfristige oder produktionsreife Lösung für die meisten Anwendungsfälle betrachtet. Obwohl wir beabsichtigen, sie voll funktionsfähig zu halten und keine breaking changes zu machen, liegt unsere Priorität auf der Zuverlässigkeit und Effektivität der Anthropic API.

Für weitere Informationen zu bekannten Kompatibilitätsbeschränkungen siehe Wichtige OpenAI Kompatibilitätsbeschränkungen.

Wenn Sie Probleme mit der OpenAI SDK Kompatibilitätsfunktion feststellen, lassen Sie es uns bitte hier wissen.

Für die beste Erfahrung und Zugang zum vollständigen Feature-Set der Anthropic API (PDF-Verarbeitung, Zitate, erweiterte Denkprozesse und Prompt-Caching) empfehlen wir die Verwendung der nativen Anthropic API.

Erste Schritte mit dem OpenAI SDK

Um die OpenAI SDK Kompatibilitätsfunktion zu verwenden, müssen Sie:

  1. Ein offizielles OpenAI SDK verwenden
  2. Folgendes ändern
    • Ihre Basis-URL aktualisieren, um auf Anthropics API zu zeigen
    • Ihren API-Schlüssel durch einen Anthropic API-Schlüssel ersetzen
    • Ihren Modellnamen aktualisieren, um ein Claude-Modell zu verwenden
  3. Die Dokumentation unten überprüfen, welche Features unterstützt werden

Schnellstart-Beispiel

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # Ihr Anthropic API-Schlüssel
    base_url="https://api.anthropic.com/v1/"  # Anthropics API-Endpunkt
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Anthropic Modellname
    messages=[
        {"role": "system", "content": "Du bist ein hilfreicher Assistent."},
        {"role": "user", "content": "Wer bist du?"}
    ],
)

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

Wichtige OpenAI Kompatibilitätsbeschränkungen

API-Verhalten

Hier sind die wesentlichsten Unterschiede zur Verwendung von OpenAI:

  • Der strict Parameter für Funktionsaufrufe wird ignoriert, was bedeutet, dass das Tool-Use-JSON nicht garantiert dem bereitgestellten Schema folgt.
  • Audio-Eingabe wird nicht unterstützt; sie wird einfach ignoriert und aus der Eingabe entfernt
  • Prompt-Caching wird nicht unterstützt, ist aber im Anthropic SDK unterstützt
  • System-/Entwicklernachrichten werden angehoben und am Anfang der Unterhaltung zusammengefügt, da Anthropic nur eine einzige anfängliche Systemnachricht unterstützt.

Die meisten nicht unterstützten Felder werden stillschweigend ignoriert, anstatt Fehler zu erzeugen. Diese sind alle unten dokumentiert.

Überlegungen zur Ausgabequalität

Wenn Sie viel an Ihrem Prompt gefeilt haben, ist er wahrscheinlich speziell auf OpenAI abgestimmt. Erwägen Sie die Verwendung unseres Prompt-Verbesserers in der Anthropic Console als guten Ausgangspunkt.

System-/Entwicklernachrichten-Anhebung

Die meisten Eingaben des OpenAI SDK lassen sich direkt auf Anthropics API-Parameter abbilden, aber ein deutlicher Unterschied ist die Behandlung von System-/Entwickler-Prompts. Diese beiden Prompts können über OpenAI in einer Chat-Unterhaltung platziert werden. Da Anthropic nur eine anfängliche Systemnachricht unterstützt, nehmen wir alle System-/Entwicklernachrichten und verketten sie mit einem einzigen Zeilenumbruch (\n) zwischen ihnen. Diese vollständige Zeichenkette wird dann als einzelne Systemnachricht am Anfang der Nachrichten bereitgestellt.

Erweiterte Denkprozess-Unterstützung

Sie können erweiterte Denkprozess-Fähigkeiten aktivieren, indem Sie den thinking Parameter hinzufügen. Obwohl dies Claudes Reasoning für komplexe Aufgaben verbessert, wird das OpenAI SDK Claudes detaillierten Denkprozess nicht zurückgeben. Für vollständige erweiterte Denkprozess-Features, einschließlich Zugang zu Claudes schrittweiser Reasoning-Ausgabe, verwenden Sie die native Anthropic API.

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

Rate Limits

Rate Limits folgen Anthropics Standard-Limits für den /v1/messages Endpunkt.

Detaillierte OpenAI-kompatible API-Unterstützung

Request-Felder

Einfache Felder

FeldUnterstützungsstatus
modelClaude-Modellnamen verwenden
max_tokensVollständig unterstützt
max_completion_tokensVollständig unterstützt
streamVollständig unterstützt
stream_optionsVollständig unterstützt
top_pVollständig unterstützt
parallel_tool_callsVollständig unterstützt
stopAlle Nicht-Whitespace-Stop-Sequenzen funktionieren
temperatureZwischen 0 und 1 (einschließlich). Werte größer als 1 werden auf 1 begrenzt.
nMuss genau 1 sein
logprobsIgnoriert
metadataIgnoriert
response_formatIgnoriert
predictionIgnoriert
presence_penaltyIgnoriert
frequency_penaltyIgnoriert
seedIgnoriert
service_tierIgnoriert
audioIgnoriert
logit_biasIgnoriert
storeIgnoriert
userIgnoriert
modalitiesIgnoriert
top_logprobsIgnoriert
reasoning_effortIgnoriert

tools / functions Felder

messages Array-Felder

Response-Felder

FeldUnterstützungsstatus
idVollständig unterstützt
choices[]Wird immer eine Länge von 1 haben
choices[].finish_reasonVollständig unterstützt
choices[].indexVollständig unterstützt
choices[].message.roleVollständig unterstützt
choices[].message.contentVollständig unterstützt
choices[].message.tool_callsVollständig unterstützt
objectVollständig unterstützt
createdVollständig unterstützt
modelVollständig unterstützt
finish_reasonVollständig unterstützt
contentVollständig unterstützt
usage.completion_tokensVollständig unterstützt
usage.prompt_tokensVollständig unterstützt
usage.total_tokensVollständig unterstützt
usage.completion_tokens_detailsImmer leer
usage.prompt_tokens_detailsImmer leer
choices[].message.refusalImmer leer
choices[].message.audioImmer leer
logprobsImmer leer
service_tierImmer leer
system_fingerprintImmer leer

Fehlermeldungs-Kompatibilität

Die Kompatibilitätsschicht behält konsistente Fehlerformate mit der OpenAI API bei. Die detaillierten Fehlermeldungen werden jedoch nicht äquivalent sein. Wir empfehlen, die Fehlermeldungen nur für Logging und Debugging zu verwenden.

Header-Kompatibilität

Während das OpenAI SDK automatisch Header verwaltet, hier ist die vollständige Liste der von Anthropics API unterstützten Header für Entwickler, die direkt mit ihnen arbeiten müssen.

HeaderUnterstützungsstatus
x-ratelimit-limit-requestsVollständig unterstützt
x-ratelimit-limit-tokensVollständig unterstützt
x-ratelimit-remaining-requestsVollständig unterstützt
x-ratelimit-remaining-tokensVollständig unterstützt
x-ratelimit-reset-requestsVollständig unterstützt
x-ratelimit-reset-tokensVollständig unterstützt
retry-afterVollständig unterstützt
request-idVollständig unterstützt
openai-versionImmer 2020-10-01
authorizationVollständig unterstützt
openai-processing-msImmer leer