Startseite / Lernen / Anthropic Python SDK: installieren, base_url festlegen, streamen und Fehler behandeln
Claude in Python. Eine elegante, bandartige Schlangenkurve, die sich um eine Codeseite windet und mit einer kleinen API-Buchse verbunden ist.

Anthropic Python SDK: installieren, base_url setzen, streamen und Fehler behandeln

Das anthropic Paket ist der offizielle Python-Client von Anthropic für die Claude API. Es übernimmt Authentifizierung, Wiederholungsversuche, Streaming und typisierte Fehler und funktioniert unverändert mit jedem Anthropic-kompatiblen Endpunkt: Legen Sie base_url (oder ANTHROPIC_BASE_URL) fest, und der übrige Code bleibt gleich.

Installation

Terminal
pip install anthropic

Die Versionen 1.x laufen mit httpx2 und benötigen Python 3.10 oder neuer. Wenn Sie Ihren eigenen HTTP-Client übergeben, verwenden Sie die SDK-eigene DefaultHttpxClient damit die standardmäßigen Zeitlimits und Verbindungslimits erhalten bleiben.

Client erstellen

app.py
import anthropic

client = anthropic.Anthropic(
    api_key="your_key",   # default: ANTHROPIC_API_KEY
    base_url="https://aiprimetech.io",    # default: ANTHROPIC_BASE_URL, else https://api.anthropic.com
)

base_url ist die Stamm-URL des Hosts. Das SDK hängt /v1/messages selbst an, sodass https://aiprimetech.io/v1 zu /v1/v1/messages und ein 404 page not foundführen würde. Wenn beide Variablen in der Umgebung gesetzt sind, anthropic.Anthropic() benötigt keinerlei Argumente:

Terminal
export ANTHROPIC_API_KEY=your_key
export ANTHROPIC_BASE_URL=https://aiprimetech.io

Nachricht senden

app.py
message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Summarise TCP slow start in two sentences."}],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

print(message.usage.input_tokens, message.usage.output_tokens)
print(message._request_id)   # log this with any failure report

content ist eine Liste von Blöcken (Text, Denkprozesse, Werkzeugnutzung). Prüfen Sie daher block.type statt content[0].text ungeprüft auszulesen.

Antworten streamen

stream.py
with client.messages.stream(
    model="claude-sonnet-5",
    max_tokens=16000,
    messages=[{"role": "user", "content": "Write a short story about a lighthouse."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
    final = stream.get_final_message()

Verwenden Sie Streaming bei langen Eingaben, langen Ausgaben oder einem großen max_tokens: Eine einzelne Anfrage ohne Streaming muss innerhalb des Zeitlimits abgeschlossen sein, ein Stream hingegen nicht. messages.create(..., stream=True) liefert Ihnen den unverarbeiteten Ereignis-Iterator, wenn Sie die Hilfsfunktion nicht benötigen.

Asynchroner Client

async_app.py
import asyncio, anthropic

client = anthropic.AsyncAnthropic(base_url="https://aiprimetech.io")
limit = asyncio.Semaphore(3)   # stay within your key's concurrency

async def ask(question: str) -> str:
    async with limit:
        msg = await client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=512,
            messages=[{"role": "user", "content": question}],
        )
        return next(b.text for b in msg.content if b.type == "text")

async def main():
    answers = await asyncio.gather(*(ask(q) for q in ["What is DNS?", "What is BGP?"]))
    print(answers)

asyncio.run(main())

Die Semaphore ist wichtig. Hunderte Anfragen gleichzeitig mit asyncio.gather zu senden, ist die häufigste Ursache für Concurrency limit exceeded Fehler, die wir bei Python-Clients beobachten.

Zeitlimits und Wiederholungsversuche

Standardwerte: ein Zeitlimit von 10 Minuten pro Anfrage und 2 automatische Wiederholungsversuche mit exponentiellem Backoff. Das SDK wiederholt Anfragen bei Verbindungsfehlern, 408, 409, 429 und 5xx-Antworten. Da auch Zeitüberschreitungen Wiederholungsversuche auslösen, beträgt die tatsächliche Gesamtdauer im schlimmsten Fall das Zeitlimit multipliziert mit der Anzahl der Versuche.

app.py
client = anthropic.Anthropic(base_url="https://aiprimetech.io", timeout=60.0, max_retries=4)

# override for one call only
client.with_options(timeout=300.0).messages.create(
    model="claude-opus-5-5",
    max_tokens=4000,
    messages=[{"role": "user", "content": "Review this design doc..."}],
)

Fehlerbehandlung

Status Ausnahme Erneut versuchen?
400anthropic.BadRequestErrorNein: Anfrage korrigieren
401anthropic.AuthenticationErrorNein: falscher oder fehlender Schlüssel
403anthropic.PermissionDeniedErrorNein
404anthropic.NotFoundErrorNein: Modell-ID oder URL
429anthropic.RateLimitErrorJa, nach einer Pause
5xx, einschließlich 529 bei Überlastunganthropic.InternalServerErrorJa
Netzwerkfehleranthropic.APIConnectionErrorJa
Zeitüberschreitunganthropic.APITimeoutErrorJa, oder Streaming verwenden
errors.py
try:
    message = client.messages.create(model="claude-sonnet-5", max_tokens=1024,
                                      messages=[{"role": "user", "content": "Hi"}])
except anthropic.NotFoundError as e:
    print("Bad model ID or URL:", e.message)
except anthropic.RateLimitError as e:
    print("Rate limited, retry after", e.response.headers.get("retry-after"))
except anthropic.APIStatusError as e:
    print(e.status_code, e.type, e.message)
except anthropic.APIConnectionError:
    print("Network problem")

Fangen Sie zuerst die spezifischen Klassen ab und APIStatusError zuletzt; ein allgemeines except verschleiert den Unterschied zwischen Fehlern, bei denen sich ein Wiederholungsversuch lohnt, und Fehlern, die eine Codeänderung erfordern. e.type liefert die Zeichenfolge für den Fehlertyp der API, etwa rate_limit_error oder overloaded_error.

Modell-IDs

Modell-ID Einsatzbereich
claude-sonnet-5Standard für Programmier- und Agentenaufgaben: schnell, leistungsstark, mittleres Preisniveau.
claude-opus-5-5Anspruchsvollere Denkaufgaben, umfangreiche Refactorings, lange Agentenläufe.
claude-fable-5-1Am leistungsfähigsten und am teuersten; für die schwierigsten Aufgaben reservieren.
claude-haiku-4-5Günstig und schnell: Titel, Zusammenfassungen, Klassifizierung, kleine Schritte.

client.models.list() gibt die Modelle zurück, die ein Endpunkt bereitstellt, sodass Sie eine ID vor der Verwendung prüfen können. Verwenden Sie die IDs genau wie angegeben: ohne Datumssuffixe.

Fehlerbehebung auf einem Gateway

Was Sie sehen Ursache Lösung
NotFoundError durch 404 page not found/v1 in base_urlStamm-URL des Hosts verwenden
AuthenticationErrorSchlüssel im Prozess nicht gesetzt oder mit Leerraum eingefügtAusgeben len(os.environ["ANTHROPIC_API_KEY"])
RateLimitError: Concurrency limit exceeded for userZu viele gleichzeitig laufende AnfragenEin asyncio.Semaphore wie oben
APITimeoutError bei langen AufgabenAnfrage ohne Streaming überschreitet das ZeitlimitStreaming verwenden oder erhöhen: timeout
InternalServerError: No available accountsVorübergehend begrenzte Kapazität beim vorgelagerten AnbieterDas SDK Wiederholungsversuche durchführen lassen; erhöhen: max_retries
Insufficient account balanceGuthaben aufgebrauchtGuthaben aufladen

Mehr zu modellseitigen Fehlern: die Anleitung zu Claude API-Fehlern.

Häufig gestellte Fragen

Wie installiere ich das Anthropic Python SDK?
pip install anthropic. Version 1.x benötigt Python 3.10 oder neuer.
Wie lege ich eine benutzerdefinierte Basis-URL im Anthropic Python SDK fest?
Übergeben Sie base_url an anthropic.Anthropic() oder setzen Sie ANTHROPIC_BASE_URL. Verwenden Sie die Stamm-URL des Hosts; das SDK hängt /v1/messages an.
Welche Standardwerte gelten für Zeitlimit und Wiederholungsversuche?
10 Minuten pro Anfrage und 2 Wiederholungsversuche mit exponentiellem Backoff bei Verbindungsfehlern, 408, 409, 429 und 5xx.
Wie verwende ich Streaming mit dem Python SDK?
Verwenden Sie with client.messages.stream(...) as stream: und iterieren Sie über stream.text_stream; stream.get_final_message() gibt die vollständige Nachricht zurück.
Claude in wenigen Minuten nutzen

Holen Sie sich einen API-Schlüssel – ohne Anthropic-Konto oder Warteliste.

API-Schlüssel erhalten

AI 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.

Weitere Anleitungen zur Claude API

So erhalten Sie einen Claude API-SchlüsselClaude-API-Preise erklärtDie günstigste Möglichkeit, die Claude API zu nutzenCursor unbegrenzt mit der Claude API nutzenUnbegrenzter Zugang zu Claude CodeClaude API-Gateway vs. direkter Zugang zu AnthropicClaude über eine OpenAI-kompatible API nutzenClaude-Modelle erklärt: ein Vergleich von Claude Opus, Sonnet, Haiku und Fable — alle Claude-API-Modelle, Anthropic-Modellnamen und Preise (2026)Die Claude API mit Kryptowährungen bezahlenZugang zur Claude API ohne WartelisteSo reduzieren Sie den Token-Verbrauch von ClaudeCline unbegrenzt mit der Claude API nutzenRoo Code unbegrenzt mit der Claude API nutzenClaude unbegrenzt in JetBrains-IDEs nutzenAider unbegrenzt mit der Claude API nutzenClaude unbegrenzt in VS Code nutzenOpenCode-Konfiguration für Claude: Einrichtung von opencode.json, Modelle und häufige FehlerEinen unbegrenzten Hermes-Agenten mit Claude betreibenOpenClaw unbegrenzt mit Claude betreibenWas eine Anthropic-kompatible API bedeutetClaude Code-API-Schlüssel — ANTHROPIC_API_KEY: So erhalten und konfigurieren Sie ihn, und wann Sie stattdessen claude setup-token verwenden solltenClaude Code-API-Kosten — Preise und Möglichkeiten zur KostensenkungClaude API-Fehler erklärt: Serverfehler 500, Überlastung 529, Ratenlimit 429, fehlerhafte Anfrage 400 — und die jeweilige LösungSo kaufen Sie Claude API-Guthaben – und warum Claude-Guthaben besser ist als jedes Angebot zum „Kauf eines Claude-Kontos“Kostenlose Claude API: Gibt es einen kostenlosen Claude API-Schlüssel, und was ist in 2026 tatsächlich kostenlos?Claude API vs. Claude Pro/Max-Abonnement — welche Option wählen?Die Codex CLI mit Claude ausführenClaude mit n8n verbindenLiteLLM-Anfragen an Claude weiterleitenClaude in Kilo Code verwendenClaude in GitHub Copilot integrierenZed über das Gateway mit Claude verbindenCherry Studio mit Claude verbindenChatAnthropic in LangChain: Import, base_url, Streaming, Tools und FehlerClaude mit dem Vercel AI SDK: createAnthropic baseURL, Streaming und FehlerbehebungFactory Droid mit Claude betreibenDie Claude Code API erklärtDie Claude API in Ihre Anwendung integrierenSo nutzen Sie Claude unbegrenzt – und warum es kein „gecracktes Claude Code“ gibt

Weitere Claude API Guides

Was eine Anthropic-kompatible API bedeutetSo kaufen Sie Claude API-GuthabenDie günstigste Möglichkeit, die Claude API zu nutzenClaude API-Fehler erklärt: Serverfehler 500, Überlastung 529, Ratenlimit 429, fehlerhafte Anfrage 400 — und die jeweilige LösungKostenlose Claude API: Gibt es einen kostenlosen Claude API-Schlüssel, und was ist in 2026 tatsächlich kostenlos?Die Claude API in Ihre Anwendung integrierenClaude-Modelle erklärt: ein Vergleich von Claude Opus, Sonnet, Haiku und Fable — alle Claude-API-Modelle, Anthropic-Modellnamen und Preise (2026)Claude-API-Preise erklärtClaude API-Gateway vs. direkter Zugang zu AnthropicClaude API vs. Claude Pro/Max-Abonnement — welche Option wählen?Die Claude API mit Kryptowährungen bezahlenZugang zur Claude API ohne WartelisteDie Claude Code API erklärtClaude Code-API-Kosten — Preise und Möglichkeiten zur KostensenkungClaude Code-API-Schlüssel — ANTHROPIC_API_KEY: So erhalten und konfigurieren Sie ihn, und wann Sie stattdessen claude setup-token verwenden solltenSo erhalten Sie unbegrenzte Claude-NutzungSo erhalten Sie einen Claude-API-SchlüsselSo reduzieren Sie den Token-Verbrauch von ClaudeClaude mit dem OpenAI SDK verwenden: OpenAI-kompatibler Endpunkt, Streaming, Tools und LimitsHermes Agent mit Claude über ein Gateway: Einrichtung eines benutzerdefinierten Anbieters, Kostenkontrolle und FehlerbehebungenOpenClaw unbegrenzt mit Claude betreibenWas unbegrenzter Zugriff auf die Claude API bedeutetSo erhalten Sie einen unbegrenzten Claude API-SchlüsselUnbegrenzte Nutzung von Claude Code — ohne Token-LimitsUnbegrenzter Zugang zu Claude Opus 4.8Unbegrenzte Claude-Nutzung — Tarife und PreiseAider mit Claude über ein Gateway: ANTHROPIC_API_BASE, Konfigurationsdateien, Architektenmodus und FehlerbehebungenCherry Studio mit Claude verbindenUnbegrenzter Zugang zu Claude CodeCline unbegrenzt mit der Claude API nutzenCodex CLI mit einem benutzerdefinierten Anbieter: config.toml, GPT- und Claude-Modelle, IDE-Erweiterung und FehlerbehebungenCursor mit unbegrenztem Claude-Zugang nutzenFactory Droid mit Claude betreibenGitHub Copilot Chat mit Claude über ein Gateway: Einrichtung von Custom Endpoint, Agentenmodus und FehlerbehebungenClaude unbegrenzt in JetBrains-IDEs nutzenClaude in Kilo Code verwendenChatAnthropic in LangChain: Import, base_url, Streaming, Tools und FehlerLiteLLM-Anfragen an Claude weiterleitenClaude mit n8n verbindenOpenCode-Konfiguration für Claude: Einrichtung von opencode.json, Modelle und häufige FehlerRoo Code unbegrenzt mit der Claude API nutzenClaude mit dem Vercel AI SDK: createAnthropic baseURL, Streaming und FehlerbehebungClaude unbegrenzt in VS Code nutzenZed über das Gateway mit Claude verbinden