Ratenlimits
Die Ratenlimits von OfoxAI gewährleisten die Plattformstabilität. Hier erfahren Sie die Limitregeln und wie Sie Ihre Aufrufstrategie optimieren.
Standardlimits
OfoxAI rechnet nutzungsbasiert ab. Alle Benutzer teilen einheitliche Ratenlimits:
| Limit | Kontingent |
|---|---|
| RPM (Anfragen/Minute) | 100 (teamübergreifend aggregiert) |
| TPM (Token/Minute) | Unbegrenzt |
Aggregation auf Teamebene: RPM wird kumulativ über die gesamte Organisation (Team) berechnet. Mehrere API Keys desselben Teams teilen sich ein gemeinsames Kontingent, wodurch von Grund auf verhindert wird, dass die Limits der vorgelagerten Anbieter durch das Stapeln mehrerer Keys umgangen werden. Wenn Sie ein höheres RPM-Kontingent benötigen, kontaktieren Sie [email protected], um eine Anpassung zu beantragen.
Rate Limit Header
Jede API-Antwort enthält Ratenlimit-Informationen:
x-ratelimit-limit-requests: 100
x-ratelimit-remaining-requests: 95
x-ratelimit-reset-requests: 12s| Header | Beschreibung |
|---|---|
x-ratelimit-limit-requests | RPM-Limit |
x-ratelimit-remaining-requests | Verbleibende Anfragen |
x-ratelimit-reset-requests | Zeit bis zum Zurücksetzen des Limits |
429-Fehlerbehandlung
Beim Erreichen des Ratenlimits gibt die API 429 Too Many Requests zurück:
from openai import RateLimitError
import time
try:
response = client.chat.completions.create(...)
except RateLimitError as e:
retry_after = float(e.response.headers.get("retry-after", 1))
print(f"Ratenlimit erreicht, warte {retry_after}s...")
time.sleep(retry_after)Optimierungsstrategien
1. Prompt Caching verwenden
Für wiederkehrende System-Prompts kann Caching den Token-Verbrauch reduzieren:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# Längere System-Prompts werden automatisch gecacht
{"role": "system", "content": "Sie sind ein professioneller... (langer Text hier ausgelassen)"},
{"role": "user", "content": "Benutzerfrage"}
]
)Weitere Informationen unter Prompt-Caching.
2. Batch-Verarbeitung
Fassen Sie mehrere kurze Anfragen zu einer zusammen:
# ❌ Nicht empfohlen: Separate Anfrage für jede Frage
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# ✅ Empfohlen: Zu einer Anfrage zusammenfassen
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"Bitte beantworten Sie die folgenden Fragen der Reihe nach:\n{combined}"}]
)3. Geeignetes Modell wählen
Empfohlene Modelle finden Sie im Modell-Marktplatz .
4. max_tokens steuern
Setzen Sie ein sinnvolles max_tokens-Limit, um unnötigen Token-Verbrauch zu vermeiden:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Fassen Sie es in einem Satz zusammen"}],
max_tokens=100 # Ausgabelänge begrenzen
)5. Modell-Fallback nutzen
Bei Erreichen des Limits für das primäre Modell automatisch auf Alternativen wechseln:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.6", "google/gemini-3.1-flash-lite-preview"]
}
}
)Weitere Informationen unter Failover.