Chat Completions API-Dokumentation
Dieser Endpunkt (Schnittstelle) wird verwendet, um basierend auf einem übergebenen Prompt eine oder mehrere vorhergesagte Vervollständigungen vom Modell zu erhalten. Sie können Text basierend auf dem Gesprächsverlauf generieren und die Zufälligkeit, Länge und das Format des Generierungsprozesses steuern.
- Endpunkt-Name: Modelle auflisten / Chat Completions
- HTTP-Methode:
GET(Hinweis: basierend auf der bereitgestellten Datendefinition) - Request-URL:
https://api.codingplanx.ai/v1/models - Status: Veröffentlicht (Released)
1. Anfrageparameter (Request Parameters)
1.1 Header-Parameter
| Parameter | Erforderlich | Typ | Beispielwert | Beschreibung |
|---|---|---|---|---|
| Content-Type | Ja | String | application/json | Format des Anfragekörpers (Request Body) |
| Accept | Ja | String | application/json | Format der Antwort (Response) |
| Authorization | Nein | String | Bearer {{YOUR_API_KEY}} | API-Schlüssel zur Authentifizierung |
1.2 Body-Parameter
Obwohl dieser Endpunkt ursprünglich als GET definiert wurde, werden die folgenden Parameter gemäß der Geschäftslogik normalerweise über einen JSON-Body übergeben.
| Parameter | Typ | Erforderlich | Standardwert | Beschreibung |
|---|---|---|---|---|
| model | string | Ja | - | Die ID des zu verwendenden Modells. Beispiel: gpt-3.5-turbo. |
| messages | array | Ja | - | Eine Liste der bisherigen Nachrichten in der Konversation. Jede Nachricht enthält role und content. |
| temperature | number | Nein | 1 | Sampling-Temperatur, zwischen 0 und 2. Höhere Werte machen die Ausgabe zufälliger. |
| top_p | number | Nein | 1 | Nucleus-Sampling. 0.1 bedeutet, dass nur Tokens berücksichtigt werden, die die obersten 10% der Wahrscheinlichkeitsmasse ausmachen. |
| n | integer | Nein | 1 | Wie viele Chat-Vervollständigungsoptionen für jede Eingabe generiert werden sollen. |
| stream | boolean | Nein | false | Ob gestreamt werden soll. Wenn auf true gesetzt, werden partielle Nachrichten-Deltas gesendet (SSE). |
| stop | string/array | Nein | null | Stopp-Sequenz. Das Modell stoppt die Generierung, wenn es auf diese Zeichen trifft. |
| max_tokens | integer | Nein | inf | Die maximale Anzahl an Tokens, die generiert werden sollen. |
| presence_penalty | number | Nein | 0 | Zahl zwischen -2.0 und 2.0. Positive Werte erhöhen die Wahrscheinlichkeit, dass das Modell über neue Themen spricht. |
| frequency_penalty | number | Nein | 0 | Zahl zwischen -2.0 und 2.0. Positive Werte verringern die Wahrscheinlichkeit, dass das Modell denselben Text wiederholt. |
| logit_bias | object | Nein | null | Ändert die Wahrscheinlichkeit, dass bestimmte Tokens in der Vervollständigung erscheinen. |
| user | string | Nein | - | Ein eindeutiger Identifikator, der Ihren Endnutzer repräsentiert und hilft, Missbrauch zu überwachen. |
| response_format | object | Nein | - | Gibt das Format der Modellausgabe an, z. B. { "type": "json_object" } um den JSON-Modus zu aktivieren. |
| tools | array | Nein | - | Eine Liste von Tools (z. B. Funktionen), die das Modell aufrufen kann. |
| tool_choice | object | Nein | auto | Steuert, welches Tool (welche Funktion) das Modell aufruft. |
2. Antwortparameter (Response Parameters)
| Parameter | Typ | Beschreibung |
|---|---|---|
| id | string | Der eindeutige Identifikator für diese Anfrage. |
| object | string | Der Objekttyp, normalerweise chat.completion. |
| created | integer | Der Unix-Zeitstempel (in Sekunden), wann die Anfrage erstellt wurde. |
| choices | array | Eine Liste der Vervollständigungsoptionen (Choices). |
| ├─ index | integer | Der Index dieser Option in der Liste. |
| ├─ message | object | Die vom Modell generierte Nachricht. |
| │ ├─ role | string | Die Rolle, normalerweise assistant. |
| │ └─ content | string | Der Textinhalt der Nachricht. |
| └─ finish_reason | string | Der Grund für das Stoppen, z. B. stop (normaler Stopp) oder length (maximale Token-Länge erreicht). |
| usage | object | Statistiken zur Token-Nutzung. |
| ├─ prompt_tokens | integer | Anzahl der für den Prompt verbrauchten Tokens. |
| ├─ completion_tokens | integer | Anzahl der in der Antwort generierten Tokens. |
| └─ total_tokens | integer | Gesamtzahl der verbrauchten Tokens. |
3. Beispiele
Beispiel für eine erfolgreiche Anfrage (Request)
curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello there, how may I assist you today?"
}
],
"temperature": 1,
"top_p": 1,
"n": 1,
"stream": false,
"user": "user-1234"
}'
Beispiel für eine erfolgreiche Antwort (Response)
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\r
\r
Hello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
4. FAQs (Häufig gestellte Fragen)
F: Warum wird in der Dokumentation die GET-Methode angezeigt, obwohl es wie ein POST-Request aussieht?
A: In den Standard-OpenAI-Spezifikationen wird für die Erstellung von Completions normalerweise die POST-Methode verwendet. Basierend auf Ihren bereitgestellten Metadaten ist dieser Endpunkt jedoch als GET definiert. Bitte überprüfen Sie die tatsächliche serverseitige Konfiguration beim Aufruf. Wenn GET nicht funktioniert, versuchen Sie es bitte mit POST.
F: Wie sollte ich zwischen temperature und top_p wählen?
A: Wir empfehlen, nur einen dieser Werte anzupassen. Wenn Sie präzisere und deterministischere Antworten wünschen, verringern Sie die temperature (z. B. auf 0.2). Wenn Sie vielfältigere und kreativere Antworten bevorzugen, können Sie den Wert erhöhen.
F: Wie aktiviere ich den JSON-Modus?
A: Sie müssen { "type": "json_object" } im Parameter response_format festlegen und das Modell explizit in den messages (über eine System- oder User-Nachricht) anweisen, im JSON-Format zu antworten. Andernfalls kann das Modell Parsing-Fehler oder Endlos-Leerzeichen erzeugen.
F: Was sind presence_penalty und frequency_penalty?
A:
presence_penalty(Präsenz-Strafe): Bestraft bereits erwähnte Themen und ermutigt das Modell, über neue Themen zu sprechen.frequency_penalty(Frequenz-Strafe): Bestraft häufig wiederholte Wörter und verhindert, dass das Modell in kurzer Zeit dieselben Sätze wiederholt.
F: Wie funktioniert das Streaming (stream: true)?
A: Bei aktiviertem Streaming sendet die API Daten Wort für Wort über Server-Sent Events (SSE) zurück. Jeder Datenblock ist ein JSON-String, der mit data: beginnt, und die Übertragung endet schließlich mit data: [DONE]. Dies ist besonders nützlich für die Echtzeitanzeige bei der Generierung langer Texte.