Freunde einladen und kostenlose Tokens verdienen!Mehr erfahren

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

ParameterErforderlichTypBeispielwertBeschreibung
Content-TypeJaStringapplication/jsonFormat des Anfragekörpers (Request Body)
AcceptJaStringapplication/jsonFormat der Antwort (Response)
AuthorizationNeinStringBearer {{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.

ParameterTypErforderlichStandardwertBeschreibung
modelstringJa-Die ID des zu verwendenden Modells. Beispiel: gpt-3.5-turbo.
messagesarrayJa-Eine Liste der bisherigen Nachrichten in der Konversation. Jede Nachricht enthält role und content.
temperaturenumberNein1Sampling-Temperatur, zwischen 0 und 2. Höhere Werte machen die Ausgabe zufälliger.
top_pnumberNein1Nucleus-Sampling. 0.1 bedeutet, dass nur Tokens berücksichtigt werden, die die obersten 10% der Wahrscheinlichkeitsmasse ausmachen.
nintegerNein1Wie viele Chat-Vervollständigungsoptionen für jede Eingabe generiert werden sollen.
streambooleanNeinfalseOb gestreamt werden soll. Wenn auf true gesetzt, werden partielle Nachrichten-Deltas gesendet (SSE).
stopstring/arrayNeinnullStopp-Sequenz. Das Modell stoppt die Generierung, wenn es auf diese Zeichen trifft.
max_tokensintegerNeininfDie maximale Anzahl an Tokens, die generiert werden sollen.
presence_penaltynumberNein0Zahl zwischen -2.0 und 2.0. Positive Werte erhöhen die Wahrscheinlichkeit, dass das Modell über neue Themen spricht.
frequency_penaltynumberNein0Zahl zwischen -2.0 und 2.0. Positive Werte verringern die Wahrscheinlichkeit, dass das Modell denselben Text wiederholt.
logit_biasobjectNeinnullÄndert die Wahrscheinlichkeit, dass bestimmte Tokens in der Vervollständigung erscheinen.
userstringNein-Ein eindeutiger Identifikator, der Ihren Endnutzer repräsentiert und hilft, Missbrauch zu überwachen.
response_formatobjectNein-Gibt das Format der Modellausgabe an, z. B. { "type": "json_object" } um den JSON-Modus zu aktivieren.
toolsarrayNein-Eine Liste von Tools (z. B. Funktionen), die das Modell aufrufen kann.
tool_choiceobjectNeinautoSteuert, welches Tool (welche Funktion) das Modell aufruft.

2. Antwortparameter (Response Parameters)

ParameterTypBeschreibung
idstringDer eindeutige Identifikator für diese Anfrage.
objectstringDer Objekttyp, normalerweise chat.completion.
createdintegerDer Unix-Zeitstempel (in Sekunden), wann die Anfrage erstellt wurde.
choicesarrayEine Liste der Vervollständigungsoptionen (Choices).
├─ indexintegerDer Index dieser Option in der Liste.
├─ messageobjectDie vom Modell generierte Nachricht.
│ ├─ rolestringDie Rolle, normalerweise assistant.
│ └─ contentstringDer Textinhalt der Nachricht.
└─ finish_reasonstringDer Grund für das Stoppen, z. B. stop (normaler Stopp) oder length (maximale Token-Länge erreicht).
usageobjectStatistiken zur Token-Nutzung.
├─ prompt_tokensintegerAnzahl der für den Prompt verbrauchten Tokens.
├─ completion_tokensintegerAnzahl der in der Antwort generierten Tokens.
└─ total_tokensintegerGesamtzahl 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.