Freunde einladen und kostenlose Tokens verdienen!Mehr erfahren

API-Dokumentation: Erstellen eines Chat-Funktionsaufrufs

Schnittstellenbeschreibung

Basierend auf einem Prompt gibt das Modell eine oder mehrere vorhergesagte Vervollständigungen (Completions) zurück und kann optional die Wahrscheinlichkeiten alternativer Tokens an jeder Position liefern. Dieser Endpunkt unterstützt insbesondere die Funktion Function Calling (Funktionsaufruf), die es dem Modell ermöglicht, intelligent zwischen der Generierung einer Textnachricht und dem Aufruf einer bestimmten Funktion zu wählen.

Basisinformationen

  • Anfragemethode: POST
  • Anfrage-URL: https://api.codingplanx.ai/v1/chat/completions
  • Datenformat: application/json

Anfrage-Header (Headers)

ParameterTypErforderlichBeispielwertBeschreibung
Content-TypestringJaapplication/jsonDatentyp des Inhalts
AcceptstringJaapplication/jsonVom Client akzeptierter Datentyp
AuthorizationstringNeinBearer {{YOUR_API_KEY}}Authentifizierungs-Token

Anfrage-Body (Body)

ParameterTypErforderlichBeschreibung
modelstringJaDie ID des zu verwendenden Modells (z. B. gpt-4o). Details zu den verfügbaren Modellen finden Sie in der Tabelle zur Modellkompatibilität.
messagesarrayJaEine Liste der bisherigen Nachrichten in der Konversation. Jedes Objekt muss die Felder role und content enthalten.
toolsarrayJaEine Liste von Tools, die das Modell aufrufen kann. Derzeit werden nur Funktionen als Tools unterstützt. Dient zur Bereitstellung einer Liste von Funktionen, für die das Modell JSON-Eingaben generieren kann.
tool_choiceobject/stringJaSteuert, welche Funktion vom Modell aufgerufen wird (falls vorhanden). none bedeutet, dass keine aufgerufen wird; auto lässt das Modell wählen. Ein spezifischer Funktionsaufruf kann durch {"type": "function", "function": {"name": "my_function"}} erzwungen werden.
temperaturenumberNeinSampling-Temperatur zwischen 0 und 2. Höhere Werte (z. B. 0.8) machen die Ausgabe zufälliger, niedrigere Werte (z. B. 0.2) deterministischer. Es wird empfohlen, nicht diese Einstellung und top_p gleichzeitig zu ändern.
top_pnumberNeinNucleus-Sampling. 0.1 bedeutet, dass nur die Tokens berücksichtigt werden, die die obersten 10 % der Wahrscheinlichkeitsmasse ausmachen. Es wird empfohlen, nicht diese Einstellung und temperature gleichzeitig zu ändern.
nintegerNeinWie viele Chat-Vervollständigungsoptionen für jede Eingabenachricht generiert werden sollen. Standard ist 1.
streambooleanNeinStandard ist false. Wenn auf true gesetzt, werden partielle Nachrichten-Deltas als Server-Sent Events (SSE) gesendet und mit data: [DONE] beendet.
stopstring/arrayNeinBis zu 4 Sequenzen, bei denen die API die Generierung weiterer Tokens stoppt. Standard ist null.
max_tokensintegerNeinDie maximale Anzahl von Tokens, die in der Chat-Vervollständigung generiert werden sollen. Die Gesamtlänge aus Eingabe und Generierung ist durch die Kontextlänge des Modells begrenzt.
presence_penaltynumberNeinZahl zwischen -2.0 und 2.0. Positive Werte bestrafen neue Tokens basierend darauf, ob sie bereits im Text vorkommen, was die Wahrscheinlichkeit erhöht, dass das Modell über neue Themen spricht.
frequency_penaltynumberNeinZahl zwischen -2.0 und 2.0. Positive Werte bestrafen neue Tokens basierend auf ihrer bisherigen Häufigkeit im Text, was die Wahrscheinlichkeit verringert, dass das Modell dieselben Inhalte wiederholt.
logit_biasobjectNeinÄndert die Wahrscheinlichkeit, dass bestimmte Tokens in der Vervollständigung erscheinen. Akzeptiert ein JSON-Objekt, das Token-IDs auf Bias-Werte (-100 bis 100) abbildet.
userstringNeinEine eindeutige Kennung für Ihren Endbenutzer, die bei der Überwachung und Erkennung von Missbrauch helfen kann.
response_formatobjectNeinEin Objekt, das das Format angibt, das das Modell ausgeben muss. Beispiel: {"type": "json_object"} aktiviert den JSON-Modus.
seenintegerNeinBeta-Funktion. Wenn angegeben, wird das System versuchen, deterministisch zu sampeln, sodass Anfragen mit demselben Seed und denselben Parametern das gleiche Ergebnis liefern.

Beispiel für einen Anfrage-Body

{
    "model": "gpt-4o",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful customer support assistant. Use the supplied tools to assist the user."
        },
        {
            "role": "user",
            "content": "Hi, can you tell me the delivery date for my order?"
        },
        {"role": "assistant", "content": "Hi there! I can help with that. Can you please provide your order ID?"},
        {"role": "user", "content": "i think it is order_12345"}
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "get_delivery_date",
                "description": "Get the delivery date for a customer's order. Call this whenever you need to know the delivery date, for example when a customer asks 'Where is my package'",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "order_id": {
                            "type": "string",
                            "description": "The customer's order ID."
                        }
                    },
                    "required": [
                        "order_id"
                    ],
                    "additionalProperties": false
                }
            }
        }
    ]
}

Antwortparameter (Response)

ParameterTypBeschreibung
idstringEindeutige Kennung für die Chat-Vervollständigung.
objectstringObjekttyp, normalerweise chat.completion.
createdintegerUnix-Zeitstempel der Erstellung der Chat-Vervollständigung.
choicesarrayListe der Optionen für die Chat-Vervollständigung.
? indexintegerDer Index dieser Option in der Liste.
? messageobjectDas vom Modell generierte Antwortnachrichten-Objekt, das role und content enthält.
? finish_reasonstringDer Grund, warum das Modell die Generierung von Tokens gestoppt hat (z. B. stop, length oder der Aufruf einer Funktion).
usageobjectStatistiken zum Token-Verbrauch für diese Anfrage.
? prompt_tokensintegerAnzahl der vom Prompt (Eingabe) verbrauchten Tokens.
? completion_tokensintegerAnzahl der von der generierten Antwort verbrauchten Tokens.
? total_tokensintegerGesamtzahl der für diese Anfrage verbrauchten Tokens.

Antwortbeispiel (200 OK)

{
    "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
    }
}

Häufig gestellte Fragen (FAQs)

F1: Wie zwinge ich das Modell, eine bestimmte von mir angegebene Funktion aufzurufen? A: Dies können Sie durch Festlegen des Parameters tool_choice erreichen. Wenn Ihre Funktion beispielsweise get_weather heißt, können Sie tool_choice auf {"type": "function", "function": {"name": "get_weather"}} setzen. Auf diese Weise ignoriert das Modell reguläre Antworten und wird gezwungen, die Parameter für diese Funktion auszugeben.

F2: Warum wurde der Inhalt meiner Antwort abgeschnitten? A: Bitte überprüfen Sie den Wert von choices[0].finish_reason in der Antwort. Wenn er "length" lautet, bedeutet dies, dass der generierte Text das von Ihnen festgelegte Limit des Parameters max_tokens überschritten hat oder die maximale Kontextlänge des Modells erreicht wurde. Sie können versuchen, den Wert von max_tokens zu erhöhen.

F3: Sowohl temperature als auch top_p steuern die Zufälligkeit. Wie sollte ich sie verwenden? A: Beide Parameter passen die Vielfalt der Modellausgabe an. Höhere Werte machen die Ausgabe kreativer, während niedrigere Werte sie strenger und deterministischer machen. Offiziell wird empfohlen, nur einen der beiden Parameter anzupassen und den anderen auf dem Standardwert zu belassen. Ändern Sie nicht beide gleichzeitig, um unvorhersehbare Ergebnisse zu vermeiden.

F4: Wie sieht das Datenformat der API-Antwort aus, wenn stream: true aktiviert ist? A: Nach der Aktivierung des Streamings gibt die API kein einzelnes JSON-Objekt mehr zurück, sondern einen Server-Sent Events (SSE)-Datenstrom. Die Daten werden stückweise in der Form data: {"id": "...", "choices": [{"delta": {"content": "..."}}]} gesendet. Wenn die Übertragung abgeschlossen ist, lautet die letzte Nachricht data: [DONE].

F5: Was muss beachtet werden, wenn response_format als JSON-Modus aktiviert wird? A: Wenn Sie response_format auf { "type": "json_object" } setzen, müssen Sie dem Modell in den messages (System-Prompt oder Benutzer-Prompt) explizit anweisen, Daten im JSON-Format zu generieren. Andernfalls könnte das Modell in eine Endlosschleife geraten, in der es Leerzeichen generiert, was zu Zeitüberschreitungen bei der Anfrage führt oder das Token-Limit erreicht.