Python SDK
Das Python-Paket anthropic oder openai mit OneProvider nutzen, nur mit geänderter base_url. Sync- und Async-Clients, Streaming, Tool-Nutzung, Retries.
Zwei Python-Wege – anthropic für native Claude-Anwendungen, openai für Migrationen. Beide funktionieren mit einer einzigen Änderung von base_url.
Alle Modelle, Funktionen und Preise Dokumentationsindex für KI-Agenten:https://oneprovider.dev/docs/llms.txt Betriebssystem Vorab: ein Schlüssel aus Ihrem Konto Öffnen Sie Ihr Konto: im Telegram-Bot @oneprovider_robot (Konto) oder auf app.oneprovider.dev . Tippen Sie auf „Schlüssel ausstellen“, vergeben Sie einen Namen (zum Beispiel diesen Client) und ein Ausgabenlimit und kopieren Sie den Schlüssel. Das Guthaben laden Sie am selben Ort auf. Mehr zu Konto und Schlüsseln . Installation
bashpip3 install anthropic
# or, for OpenAI-style code:
pip3 install openai
# In a venv (recommended):
# python3 -m venv .venv && source .venv/bin/activate
# pip install anthropic openai Anthropic SDK
pythonimport os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ONEPROVIDER_KEY"],
base_url="https://api.oneprovider.dev",
)
resp = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Say hi."}],
)
print(resp.content[0].text) OpenAI-kompatibel
pythonimport os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ONEPROVIDER_KEY"],
base_url="https://api.oneprovider.dev/v1",
)
resp = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Say hi."}],
)
print(resp.choices[0].message.content) Async-Client
pythonimport asyncio
from anthropic import AsyncAnthropic
async def main():
client = AsyncAnthropic(base_url="https://api.oneprovider.dev")
resp = await client.messages.create(
model="claude-sonnet-5-5",
max_tokens=512,
messages=[{"role": "user", "content": "Hi async."}],
)
print(resp.content[0].text)
asyncio.run(main()) Streaming
pythonwith client.messages.stream(
model="claude-sonnet-5-5",
max_tokens=512,
messages=[{"role": "user", "content": "Tell me a haiku."}],
) as stream:
for chunk in stream.text_stream:
print(chunk, end="", flush=True) Tool-Nutzung
pythontools = [{
"name": "get_weather",
"description": "Get current weather for a city.",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
}]
resp = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Frankfurt?"}],
)
# resp.stop_reason == "tool_use"
# Inspect resp.content for tool_use blocks. Wiederholungen & Fehlerbehandlung
pythonfrom anthropic import APIStatusError
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=0.5, min=0.5, max=4),
retry_error_cls=APIStatusError,
)
def call():
return client.messages.create(
model="claude-sonnet-5-5",
max_tokens=512,
messages=[{"role": "user", "content": "Hi."}],
) Schreiben Sie den Schlüssel nicht fest in den Code Lesen Sie den Schlüssel immer aus einer Umgebungsvariable oder einem Secret-Manager. Fest eingetragene Schlüssel landen früher oder später in der Versionsverwaltung. Welches Modell wählen
Übergeben Sie die ID in model. claude-sonnet-5-5 ist der Standard für die meisten Anwendungen, claude-haiku-5-5 für schnelle Aufrufe mit hohem Volumen und claude-opus-5-5 für anspruchsvolles Schlussfolgern. Die OpenAI-kompatible Form akzeptiert auch GPT-IDs wie gpt-6.1-terra. Nutzen Sie die Anthropic-Form mit https://api.oneprovider.dev und die OpenAI-Form mit https://api.oneprovider.dev/v1. IDs stehen auf der Modellseite .
Häufige Fehler und Lösungen
404 NotFoundError
Anthropic-SDK: base_url="https://api.oneprovider.dev" ohne /v1. OpenAI-SDK: base_url="https://api.oneprovider.dev/v1" mit /v1.
401 AuthenticationError
Die Umgebungsvariable ist leer oder hat einen angehängten Zeilenumbruch. Geben Sie vor dem Aufruf len(os.environ["ONEPROVIDER_KEY"]) aus.
429 RateLimitError
Lesen Sie die Meldung: „Insufficient balance“ bedeutet: Guthaben aufladen (nicht erneut versuchen), jedes andere 429 ist ein Rate-Limit – warten Sie ab und beachten Sie Retry-After.
APIConnectionError oder Lese-Timeout
Deaktivieren Sie VPN oder Proxy-Variablen (HTTPS_PROXY) und nutzen Sie bei langen Antworten Streaming: Eine Anfrage ohne Streaming muss innerhalb von 6 Minuten beginnen.
400 zu max_tokens
Das Anthropic-SDK verlangt max_tokens in jeder Anfrage.
FAQ
Kann ich die offiziellen SDKs behalten?
Ja. Nur Schlüssel und base_url ändern sich, siehe Von Anthropic migrieren und Von OpenAI migrieren .
Funktioniert Streaming?
Ja, mit beiden SDKs; siehe Streaming .
Wo bewahre ich den Schlüssel auf?
In einer Umgebungsvariable, nie im Repository.
Kurze Antworten
Welche base URL verwende ich?
Claude Code und die Anthropic-SDKs verwenden https://api.oneprovider.dev. OpenAI-SDKs und OpenAI-kompatible Clients verwenden https://api.oneprovider.dev/v1. Ein Schlüssel funktioniert an beiden Adressen; die Modellliste finden Sie auf der Modellseite , die Preise auf der Preisseite .
Wie authentifiziere ich mich?
Senden Sie den unveränderten sk-…-Schlüssel in x-api-key oder Authorization: Bearer: nur eines von beiden, nie beide. Bewahren Sie den Schlüssel in einer Umgebungsvariable auf, nicht in einer Datei, die ins Repository committet wird. Mehr zur Authentifizierung .
Wo bekomme ich einen Schlüssel?
Öffnen Sie Ihr Konto im Telegram-Bot @oneprovider_robot oder auf app.oneprovider.dev, laden Sie das Guthaben auf und tippen Sie auf „Schlüssel ausstellen“. Jeder Schlüssel kann ein eigenes Ausgabenlimit haben. Konto & API-Schlüssel .
Was bedeuten 401, 404 und 429?
401: Der Schlüssel fehlt, ist falsch geschrieben oder steht im falschen Header; fügen Sie den ganzen Schlüssel ohne Anführungszeichen und Leerzeichen ein. 404: meist eine falsche base URL, zum Beispiel ein fehlendes oder doppeltes /v1. 429 mit „Insufficient balance“: Das Guthaben des Kontos oder das Ausgabenlimit des Schlüssels ist aufgebraucht – laden Sie auf, statt es erneut zu versuchen; jedes andere 429 ist ein Rate-Limit, warten Sie dann die Zeit aus Retry-After ab. Details: Fehlercodes und Fehlerbehebung .
Warum brechen Streams ab oder werden zurückgesetzt?
VPN- und VLESS-Proxys puffern SSE oft oder stören die HTTP/2-Aushandlung. OneProvider hat keine regionalen Beschränkungen und puffert keine Streams – schalten Sie den Proxy aus und versuchen Sie es erneut.
Wohin wende ich mich, wenn das nicht reicht?
Schreiben Sie @Oneproviderhelpbot auf Telegram oder öffnen Sie „Support“ im Web-Konto – mit HTTP-Statuscode und genauer Fehlermeldung. So arbeitet der Support .
Zuletzt aktualisiert: 2026-11-08 Fehler gefunden? @Oneproviderhelpbot