Voraussetzungen und Konfiguration
Um unsere OpenAI-API-Proxy zu nutzen, benötigst du das offizielle SDK für deine Sprache und einen gültigen API-Schlüssel. Melde dich im Dashboard an, um deinen Schlüssel sofort zu erhalten. Für die Testphase benötigst du keine Kreditkarte. Lege zwei Umgebungsvariablen fest: OPENAI_API_KEY mit deinem Schlüssel und OPENAI_BASE_URL, die auf unseren Endpunkt zeigt. Dieser Ansatz stellt sicher, dass dein bestehender Code ohne Änderungen funktioniert und als transparenter LLM-Proxy für deine Anwendungen dient.
Unser Dienst verwendet die Standard-Modell-ID uncensored. Da wir ein Single-Model-Proxy sind, musst du keine komplexe Routing-Logik verwalten. Die Basis-URL ist https://api.openaiapiproxy.com/v1. Nach der Konfiguration behandelt dein Client unseren Dienst genau wie jeden anderen OpenAI-kompatiblen Endpunkt.
Erste Anfrage und Python-Einrichtung
Beginne mit dem Senden einer einfachen Chat-Vervollständigungsanfrage. Dies bestätigt deine Authentifizierung und Konnektivität. Das folgende Beispiel verwendet einen einfachen Text-Prompt, um das unzensierte Verhalten zu überprüfen. Ersetze die Platzhalterwerte durch deine tatsächlichen Anmeldedaten.
Für Python-Entwickler übernimmt die offizielle openai-Bibliothek die Komplexität. Du weist den Client einfach auf unsere Basis-URL hin. Der folgende Code zeigt eine Standard-Synchronanfrage. Er sendet einen Prompt und gibt die Antwort des Modells zurück. Dies ist der schnellste Weg, um deine Integration zu überprüfen.
Stelle sicher, dass deine Umgebungsvariablen geladen sind, bevor du die Client-Instanz erstellst. Das SDK verwendet automatisch das Standard-OpenAI-Format für Anfragen und Antworten.
Node.js-Integration
Wenn du mit Node.js baust, ist der Prozess identisch mit Python. Verwende das @ai-sdk/openai- oder das offizielle openai-npm-Paket. Weise den Client auf unsere Basis-URL hin und gib deinen API-Schlüssel an. Das SDK übernimmt die JSON-Serialisierung und HTTP-Anfragen für dich.
Diese Einrichtung funktioniert mit jeder OpenAI-kompatiblen Client-Bibliothek. Du kannst deine bestehenden Prompt-Vorlagen und Nachrichtenstrukturen wiederverwenden. Das Antwortformat entspricht dem Standard-OpenAI-Schema, was den Wechsel zwischen Anbietern bei Bedarf erleichtert.
Denke daran, Fehler angemessen zu behandeln. Netzwerkprobleme oder ungültige Schlüssel geben Standard-HTTP-Fehlercodes zurück. Prüfe die Dokumentation für deine spezifische SDK-Version für detaillierte Fehlerbehandlungen.
Streaming-Antworten
Aktiviere für Echtzeitanwendungen das Streaming, um Token zu erhalten, sobald sie generiert werden. Dies reduziert die wahrgenommene Latenz für Endbenutzer. Das SDK unterstützt Server-Sent Events (SSE) nativ. Du iterierst über den Antwort-Stream, um jeden Token zu verarbeiten.
Streaming ist ideal für Chat-Schnittstellen, bei denen Benutzer sofortiges Feedback erwarten. Das Modell generiert Text kontinuierlich, und du kannst jeden Token an die Benutzeroberfläche anhängen. Dies bietet ein flüssigeres Benutzererlebnis im Vergleich zum Warten auf die vollständige Antwort.
Der Streaming-Endpunkt verwendet dieselbe Basis-URL und Authentifizierung. Du musst nur das Stream-Flag in deinen Anfrageparametern aktivieren. Das SDK übernimmt den Verbindungslebenszyklus und die Fehlerwiederherstellung.
Ratenlimits und Einschränkungen
Unsere API erzwingt strenge Limits, um die Zuverlässigkeit zu gewährleisten. Du darfst 300 Anfragen pro Minute pro API-Schlüssel stellen. Die maximale Größe des Anfragekörpers beträgt 8 MB. Wenn du das Ratenlimit überschreitest, erhältst du einen 429-Statuscode. Implementiere exponentielles Backoff in deinem Client, um diese Fehler gracefully zu behandeln.
Authentifizierungsfehler geben einen 401-Status zurück, wenn der Schlüssel ungültig oder widerrufen ist. Zahlungsprobleme geben einen 402-Status zurück, wenn dein Prepaid-Guthaben aufgebraucht ist. Aufladungen sind sofort per Krypto (USDT oder USDC) verfügbar. Dein Prepaid-Guthaben verfällt nie, sodass du Pay as you go bezahlen kannst.
Das Kontextfenster beträgt 100.000 Token für Eingabe und Ausgabe zusammen. Plane deine Prompts entsprechend, um Trunkierung zu vermeiden. Das Modell stoppt die Generierung, wenn es das Limit erreicht.
Modelle und Inhaltsrichtlinie
Das einzige verfügbare Modell ist uncensored, ein Open-Weight-Modell, das für rechtliche Erwachseneninhalte und kreatives Schreiben optimiert ist. Es lehnt kontroverse oder explizite Themen standardmäßig nicht ab. Dies macht es ideal für Anwendungsfälle, in denen Standardmodelle zu restriktiv sein könnten.
Wir bieten keine Embeddings, Bildgenerierung oder Audioverarbeitung an. Dies ist eine Text-API. Das Modell ist kein GPT, Claude oder ein anderes Modell eines anderen Anbieters. Es wurde speziell für unsere Infrastruktur abgestimmt.
Sexuelle Inhalte mit Minderjährigen werden immer blockiert. Alle anderen legalen Inhalte sind erlaubt. Wir verwenden deine Prompts nicht zum Training. Deine Daten bleiben privat und werden nur zur Generierung der Antwort für deine Anfrage verwendet.
cURL
curl https://api.openaiapiproxy.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openaiapiproxy.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaiapiproxy.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)