Chat-Abschlüsse
Senden Sie OpenAI-kompatible Chat-Anfragen mit klaren Kontrollen.
Führen Sie Chat-Arbeitsabläufe für Assistenten, Copiloten und interne Tools mit einer vertrauten Anfrageform, serverseitigen Schlüsseln, Nutzungsverfolgung und sicherem Wiederholungsverhalten aus.
Zuletzt aktualisiert: July 12, 2026. Examples Nutzung safe placeholders und tun nicht enthalten real API-Schluessels, Geheimnisse, oder customer Daten.
Standardpfad
Verwenden Sie zuerst Nicht-Streaming-Anfragen. Sie geben eine vollständige Chat.Completion-Antwort zurück und sind einfacher zu validieren, bevor der kundenorientierte Datenverkehr zunimmt.
Implementierungspfad
Vier Schritte vom Schlüssel zur Antwort.
Halten Sie die erste Integration klein: Authentifizieren Sie sich über Ihr Backend, senden Sie ein minimales Nachrichtenarray, analysieren Sie die Antwort und fügen Sie dann Wiederholungsversuche und Ratenbegrenzungsbehandlung hinzu.
Step 1
Serverseitig authentifizieren
Lesen Sie einen bereichsbezogenen API-Schlüssel aus einer serverseitigen Umgebungsvariablen und senden Sie ihn als Bearer-Token.
Abschnitt öffnenStep 2
Senden Sie eine Chat-Anfrage
Veröffentlichen Sie eine OpenAI-kompatible Nutzlast mit einer Modellzeichenfolge und einem Nachrichtenarray.
Abschnitt öffnenStep 3
Analysieren Sie die Antwort
Lesen Sie „choices[0].message.content“ für die Assistentennachricht und die Verwendung für die Anforderungsabrechnung.
Abschnitt öffnenStep 4
Gehen Sie mit Grenzen und Fehlern um
Wiederholen Sie vorübergehende Fehler mit Backoff, beheben Sie jedoch Authentifizierungs-, Nutzlast-, Kapazitäts- und nicht unterstützte Funktionsfehler, bevor Sie den Vorgang erneut senden.
Abschnitt öffnenEndpunkt
Veröffentlichen Sie JSON in der Pfad „Chat-Abschlüsse“.
Der Endpunkt folgt dem OpenAI-kompatiblen /v1-Pfad. Senden Sie Anfragen von vertrauenswürdigem serverseitigem Code mit einem bereichsbezogenen Bearer-Token.
| Artikel | Wert | Notizen |
|---|---|---|
| Methode | POST | Senden Sie JSON an den Endpunkt für Chat-Abschlüsse. |
| Endpunkt | https://unlimitedcodex.com/v1/chat/completions | Verwenden Sie dasselbe Basismuster URL wie andere OpenAI-kompatible /v1-Endpunkte. |
| Autorisierung | Inhabertoken | Verwenden Sie einen API-Schlüssel mit chat:write-Bereich aus vertrauenswürdigem serverseitigem Code. |
| Inhaltstyp | application/json | Der Anforderungstext muss gültig sein: JSON. |
Nicht-Streaming-Anfrage
Beginnen Sie mit einer vollständigen Antwort.
Nicht-Streaming-Anfragen sind der sicherste erste Weg, da Ihr Anwendung das vollständige Antwortobjekt, den Status, die Header und die Nutzung an einem Ort erhält.
Behalten Sie den API-Schlüssel in process.env oder einem geheimen Manager.
Use a short system instruction und a minimal user message.
Legen Sie max_tokens fest, wenn die Benutzeroberfläche oder das Kostenbudget eine Obergrenze benötigt.
Analysieren Sie die Nutzung, damit die Anforderungs-, Token- und Kostenüberwachung korrekt bleibt.
const response = await fetch("https://unlimitedcodex.com/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.UCX_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gpt-5.5",
messages: [
{ role: "system", content: "You write concise operational summaries." },
{ role: "user", content: "Summarize the release checklist in three bullets." }
],
temperature: 0.2,
max_tokens: 180
})
});
const body = await response.json();
if (!response.ok) {
throw new Error(body.error?.code ?? "chat_request_failed");
}
console.log(body.choices[0].message.content);
console.log(body.usage);Anforderungs- und Antwortform
Nutzen Sie bekannte Chatfelder und Nutzungsabrechnungen.
Die erforderliche Form ist klein: eine Modellzeichenfolge und mindestens eine Nachricht. Optionale Felder können das Ausgabeverhalten oder die Ratenbegrenzungsplanung verschärfen.
| Feld | Status | Notizen |
|---|---|---|
| Modell | Empfohlen | Übergeben Sie den Zielmodellwert explizit. Verwenden Sie gpt-5.5 oder die in Ihren bereitgestellten Einrichtung-Dateien aufgeführten Modellwerte ChatGPT 5.5 Ultra und Codex. |
| Nachrichten | Erforderlich | Array von System-, Benutzer-, Assistenten- oder Tool-Meldungen. Fügen Sie nur den Kontext ein, der für die Aufgabe erforderlich ist. |
| Temperatur | Optional | Verwenden Sie eine Zahl zwischen 0 und 2, wenn der Arbeitsablauf mehr oder weniger Abwechslung erfordert. |
| max_Tokens | Optional | Begrenzen Sie die Antwortlänge, wenn die Benutzererfahrung oder das Kostenbudget eine vorhersehbare Obergrenze erfordern. |
| Strom | Optional | Lassen Sie es weg oder legen Sie „false“ für den aktuell unterstützten Pfad fest. Sehen Sie sich das Streaming-Verhalten unten an, bevor Sie es auf „true“ setzen. |
{
"id": "chatcmpl_example",
"object": "chat.completion",
"created": 1783372800,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "This is an unlimitedcodex chat completion response. Use the delivered setup files for available ChatGPT 5.5 Ultra and Codex model values."
},
"finish_reason": "stop"
}
],
"usage": {
"inputTokens": 24,
"outputTokens": 32,
"totalTokens": 56
}
}Streaming-Verhalten
Behandeln Sie Streaming als explizite Funktionsprüfung.
Gehen Sie nicht davon aus, dass sich eine Streaming-Anfrage wie eine Nicht-Streaming-Anfrage verhält. Verzweigen Sie auf den Antwortcode und behalten Sie einen vom Produkt genehmigten Fallback-Pfad bei.
{
"error": {
"message": "Streaming responses are not enabled for this endpoint.",
"type": "unsupported_feature",
"code": "streaming_not_enabled"
}
}| Modus | Einstellung | Verhalten | Kundenaktion |
|---|---|---|---|
| Kein Streaming | Stream weglassen oder Stream festlegen: false | Gibt ein vollständiges chat.completion-Objekt zurück, wenn die Anfrage angenommen wird. | Verwenden Sie dies als Standardpfad für erste Integrationen und kundenorientierte Arbeitsabläufe. |
| Streaming | Stream: wahr | Der aktuelle Endpunkt gibt 501 „streaming_not_enabled“ zurück. | Greifen Sie nur dann auf Nicht-Streaming zurück, wenn das Benutzererlebnis akzeptabel ist. |
Hinweise zur Modellführung
Machen Sie die Modellrichtlinie sichtbar, bevor der Datenverkehr zunimmt.
Das Musterfeld ist Teil des Anforderungsvertrages und der Betriebsakte. Behalten Sie die Absicht bei und überprüfen Sie dann die Richtlinien, bevor Sie Volumenänderungen einführen.
Halten Sie das Modell explizit
Senden Sie in jeder Anfrage einen Modellwert, damit Nutzungsprotokolle, Nutzungsanalysen und Supporteskalation ein stabiles Richtliniensignal haben.
Gehen Sie nicht von einem stillen Ausweichmanöver aus
Behandeln Sie das Modell-Fallback-Verhalten als eine konfigurierte Produktentscheidung. Überprüfen Sie die Richtlinien, bevor Sie die Namen von Produktionsmodellen ändern.
Protokollieren Sie nur sichere Kennungen
Erfassen Sie Endpunkt, Status, Modell, Nutzung und ein maskiertes Schlüsselpräfix. Protokollieren Sie keine Roheingabeaufforderungen, API-Schlüssel oder Kundendaten.
Sichere Wiederholungsversuche
Wiederholen Sie nur Arbeiten, die wiederhergestellt werden können.
Wiederholungsversuche helfen bei vorübergehendem Druck und Dienstausfällen. Sie können Kapazitäts-, Nutzlast- und Abrechnungsprobleme verstärken, wenn sich nichts ändert.
Wiederholen Sie vorübergehende Fehler
408, 500, 502, 503, 504 und kurzer 429-Ratendruck
Verwenden Sie einen begrenzten exponentiellen Wartezeit mit Jitter. Respektieren Sie „Retry-After“, wenn die Antwort es enthält.
Versuchen Sie es nicht erneut mit unveränderten Nutzlasten
400, 401, 402, 403, 501 und Kapazitätsdruck
Korrigieren Sie Nutzlast, Schlüssel, Abrechnungsstatus, Umfang, nicht unterstützte Option oder Paketkapazität, bevor Sie dieselbe Arbeit erneut senden.
Halten Sie Wiederholungsversuche für Geheimnisse unsichtbar
Alle Anwendung-Implementierungen
Wiederholen Sie die Anforderungsfunktion, nicht eine protokollierte Rohnutzlast. Redigieren Sie Autorisierungsheader und Kundeninhalte aus der Diagnose.
async function runWithChatRetries(runRequest) {
for (let attempt = 0; attempt < 3; attempt += 1) {
const response = await runRequest();
if (response.ok) {
return response;
}
const body = await response.clone().json().catch(() => ({}));
const code = body.error?.code;
const retryable =
[408, 500, 502, 503, 504].includes(response.status) ||
(response.status === 429 && code === "rate_limit_exceeded");
if (!retryable) {
return response;
}
const retryAfter = Number(response.headers.get("retry-after") ?? 0);
const backoffMs = retryAfter > 0 ? retryAfter * 1000 : 500 * 2 ** attempt;
const jitterMs = Math.floor(Math.random() * 150);
await new Promise((resolve) => setTimeout(resolve, backoffMs + jitterMs));
}
return runRequest();
}Checkliste starten
Überprüfen Sie die Integration, bevor Benutzer darauf angewiesen sind.
Ein startbereiter Chat-Arbeitsablauf erfordert mehr als eine erfolgreiche Anfrage. Bestätigen Sie Schlüssel, Grenzwerte, Fehler, Protokolle und Fallback-Verhalten, während der Explosionsradius noch klein ist.
Verwenden Sie separate Schlüssel für Entwicklung, Staging und Produktion.
Bestätigen Sie den Chat:Write-Bereich und die serverseitige Umgebungsspeicherung.
Entscheiden Sie, ob „streaming_not_enabled“ blockieren oder zurückgreifen soll.
Überwachen Sie die Anzahl der Anfragen, Eingabe-Tokens, Ausgabe-Tokens, Ratenstatus und Statuscodes.
Redigieren Sie Eingabeaufforderungen, Autorisierungsheader, Rohschlüssel und Kundendaten aus Protokollen.
Verknüpfen Sie UI-Fehler mit Wiederholungs-, Kundendienst- oder Upgrade-Aktionen anstelle von generischem Fehlertext.
FAQ
Fragen zum Chat-Abschluss.
Ist der Chat-Abschluss-Endpunkt OpenAI-kompatibel?
Ja. Der Endpunkt verwendet den bekannten Pfad /v1/chat/completions, die Bearerauthentifizierung, das Nachrichtenarray, das Antwortobjekt chat.completion, Auswahlmöglichkeiten und Verwendungsfelder.
Sollte ich Streaming für kundenorientierten Datenverkehr verwenden?
Verwenden Sie Nicht-Streaming-Anfragen, es sei denn, Ihre Integration hat die Streaming-Unterstützung bestätigt. Der aktuelle Endpunkt gibt 501 „streaming_not_enabled“ zurück, wenn der Stream „true“ ist.
War sollte ich zum Debuggen protokollieren?
Protokollendpunkt, Status, Fehlercode, Modell, Verwendung, Zeitstempel, Umgebung und maskiertes Schlüsselpräfix. Protokollieren Sie keine rohen API-Schlüssel, Geheimnisse, vollständigen Eingabeaufforderungen oder Kundendaten.
Wann sollte mein Kunde eine Chat-Anfrage erneut versuchen?
Wiederholen Sie die Antworten „Transient 408“, „Rate Pressure 429“ und „5xx“ mit begrenztem Backoff. Versuchen Sie es nicht erneut, wenn die Authentifizierung, Nutzlast, Abrechnung, Kapazität oder nicht unterstützte Funktionen fehlgeschlagen sind.
Kostenlose Tools
Erstellen und validieren Sie Chat-Anfragen
Generieren Sie Snippets, validieren Sie JSON, schätzen Sie Tokens und planen Sie die OpenAI-Migration vor Ihrem ersten Live-Anruf.
Anfrage Entwickler
Erstellen Sie den Chat-Abschluss JSON visuell und exportieren Sie cURL-, JavaScript- oder Python-Snippets.
Validator anfordern
Validieren Sie Chat, Einbettungen und Bildnutzlasten JSON anhand unlimitedcodex OpenAI-kompatibler Regeln.
Token-Schätzer
Schätzen Sie das Token-Volumen anhand von Eingabeaufforderungen oder Antworttexten vor der Kontingentplanung und -einführung.
Migrationsgenerator
Generieren oder transformieren Sie OpenAI SDK-Snippets in unlimitedcodex Basis-URL, Schlüssel und Bereiche.
Naechster Schritt
Koppeln Sie Chat-Abschlüsse mit Authentifizierung, Limits und Fehlerbehandlung.
Stellen Sie vor dem Start sicher, dass die Schlüssel einen Gültigkeitsbereich haben, das Ratenbegrenzungsverhalten verstanden ist und Anwendung-Wiederholungsversuche vorübergehenden Druck von erforderlichen Korrekturen unterscheiden können.