
Claude mit dem OpenAI SDK verwenden: OpenAI-kompatibler Endpunkt, Streaming, Tools und Limits
Für das OpenAI SDK geschriebener Code kann Claude ohne Überarbeitung aufrufen: Richten Sie base_url auf die Gateway-Adresse /v1aus, verwenden Sie einen Gateway-Schlüssel und eine Claude-Modell-ID. Der Endpunkt akzeptiert Chat-Completions-Anfragen, streamt im selben Format und unterstützt Funktionsaufrufe. Einige Claude-Funktionen sind nur im nativen Format von Anthropic verfügbar; der letzte Abschnitt erläutert, wann Sie wechseln sollten.
Eckdaten zum Endpunkt
| Eintrag | Wert |
|---|---|
| Basis-URL | https://aiprimetech.io/v1 |
| Chat-Endpunkt | POST https://aiprimetech.io/v1/chat/completions |
| Modellliste | GET https://aiprimetech.io/v1/models |
| Authentifizierung | Authorization: Bearer <key>; x-api-key wird ebenfalls akzeptiert |
| Modelle | Claude-IDs wie claude-sonnet-5; GPT-IDs mit einem Schlüssel aus der Codex-Gruppe |
Python
pip install openaiimport os
from openai import OpenAI
client = OpenAI(base_url="https://aiprimetech.io/v1", api_key=os.environ["AIPRIME_API_KEY"])
resp = client.chat.completions.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "Explain idempotency keys in two sentences."},
],
)
print(resp.choices[0].message.content)
print(resp.usage)base_url muss enden auf /v1: Das SDK hängt /chat/completions daran an. Ohne /v1 die Anfrage landet auf der Website und liefert HTML zurück; mit /v1 zweimal liefert sie 404 page not found.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://aiprimetech.io/v1", apiKey: process.env.AIPRIME_API_KEY });
const resp = await client.chat.completions.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Write a haiku about retries." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="claude-sonnet-5",
max_tokens=2048,
stream=True,
stream_options={"include_usage": True},
messages=[{"role": "user", "content": "Outline a zero-downtime migration."}],
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
if chunk.usage:
print("\n", chunk.usage)Streamen Sie lange Antworten: Eine Anfrage ohne Streaming muss innerhalb des Timeouts Ihres Clients abgeschlossen sein, ein Stream nicht. include_usage fügt einen abschließenden Chunk mit Token-Anzahlen hinzu. Mehr dazu, warum das wichtig ist, unter LLM-Antworten streamen.
Funktionsaufrufe
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
resp = client.chat.completions.create(
model="claude-sonnet-5", max_tokens=512, tools=tools,
messages=[{"role": "user", "content": "What is the weather in Paris?"}],
)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, call.function.arguments) # get_weather {"city": "Paris"}Die Antwort enthält finish_reason: "tool_calls" und im OpenAI-Stil tool_calls. Führen Sie die Funktion aus, hängen Sie eine tool Nachricht mit dem Ergebnis und dem passenden tool_call_idan und rufen Sie erneut auf, genau wie bei OpenAI-Modellen.
Reasoning und Thinking
reasoning_effort entspricht der Effort-Einstellung von Claude und akzeptiert low, medium, high, xhigh oder max. Der Wert none wird abgelehnt. Wenn das Modell nachdenkt, wird seine Argumentation in einem separaten reasoning_content Feld neben contentübermittelt, sodass Code, der message.content liest, unverändert weiter funktioniert.
resp = client.chat.completions.create(
model="claude-opus-5-5", max_tokens=4096, reasoning_effort="high",
messages=[{"role": "user", "content": "Find the bug in this function: ..."}],
)Modelle
| Modell-ID | Einsatzbereich |
|---|---|
claude-sonnet-5 | Standard für Programmier- und Agentenaufgaben: schnell, leistungsstark, mittleres Preisniveau. |
claude-opus-5-5 | Anspruchsvollere Denkaufgaben, umfangreiche Refactorings, lange Agentenläufe. |
claude-fable-5-1 | Am leistungsfähigsten und am teuersten; für die schwierigsten Aufgaben reservieren. |
claude-haiku-4-5 | Günstig und schnell: Titel, Zusammenfassungen, Klassifizierung, kleine Schritte. |
Verwenden Sie diese IDs exakt wie angegeben. Alte datierte IDs wie claude-3-5-sonnet-20241022 erscheinen noch in manchen Modelllisten, werden aber nicht bereitgestellt und führen zu einem Fehler wegen eines nicht unterstützten Modells.
Wann Sie stattdessen die native Anthropic API verwenden sollten
Das OpenAI-Format deckt Chat, Streaming, Tools und Bilder ab. Verwenden Sie am selben Gateway das eigene Messages-Format von Anthropic, wenn Sie explizite Prompt-Cache-Haltepunkte, Thinking-Blöcke, die Sie zwischen Gesprächsrunden zurückgeben, PDF-Dokumente oder Quellenangaben benötigen. Die Leitfaden zum Anthropic Python SDK und die Anleitung zum Vercel AI SDK behandeln diesen Weg.
Fehlerbehebung
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
Ein JSON-Parsing-Fehler, die Antwort beginnt mit < | base_url ohne /v1 | https://aiprimetech.io/v1 |
404 page not found | /v1 zweimal | Genau ein /v1 |
401 Invalid API key | Fehlender oder falscher Schlüssel im Prozess | Prüfen Sie die Variable; ein Schlüssel gehört zu einem Gateway |
| Modell nicht unterstützt | Alte datierte oder falsch geschriebene Modell-ID | Verwenden Sie eine ID aus der obigen Tabelle |
'none' is not supported | reasoning_effort="none" | Verwenden Sie low oder höher, oder lassen Sie die Angabe weg |
429 Concurrency limit exceeded for user | Zu viele gleichzeitig laufende Anfragen | Begrenzen Sie die Parallelität; siehe Ratenlimits und Wiederholungsversuche |
| Timeouts bei langen Antworten | Lange Anfrage ohne Streaming | Verwenden Sie Streaming oder erhöhen Sie den Client-Timeout |
Häufig gestellte Fragen
Kann ich Claude mit dem OpenAI SDK verwenden?
Welche Basis-URL verwende ich für Claude im OpenAI SDK?
Funktionieren Funktionsaufrufe mit Claude über das OpenAI-Format?
Wann sollte ich stattdessen die native Anthropic API verwenden?
Holen Sie sich einen API-Schlüssel – ohne Anthropic-Konto oder Warteliste.
API-Schlüssel erhaltenAI Prime Tech ist ein unabhängiges API-Gateway. Es ist weder mit Anthropic verbunden noch von Anthropic empfohlen und auch kein Wiederverkäufer von Anthropic. Claude und zugehörige Modellnamen sind Marken ihrer jeweiligen Inhaber.