> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat-Konversationsanfrage erstellen

Generiert eine Modellantwort basierend auf der angegebenen Chat-Konversation

## Anfrageheader

<ParamField header="Content-Type" type="string" required={true}>
  Enumerationswert: `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Bearer-Authentifizierungsformat: Bearer \{\{API Key}}.
</ParamField>

## Anfragetext

<ParamField body="model" type="string" required={true}>
  Der Name des zu verwendenden Modells.
</ParamField>

<ParamField body="messages" type="object[]" required={true}>
  Liste der Nachrichten, aus denen die aktuelle Konversation besteht.

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ParamField body="content" type="string | object[] | null" required={true}>
      Der Inhalt der Nachricht. Alle Nachrichten benötigen content; bei assistant-Nachrichten, die Funktionsaufrufe enthalten, kann content null sein.

      Je nach Modalität können Sie die folgenden Parameter verwenden.

      <Frame>
        <div class="param_frame">
          <Tabs>
            <Tab title="Textinhalt">
              <p class="param_text">Option 1:</p>
              <p class="param_text">Sie können einen String-Typ verwenden, um den Textinhalt der Nachricht darzustellen.</p>

              <br />

              <p class="param_text">Option 2:</p>
              <p class="param_text">Verwenden Sie ein Array von Inhaltsbestandteilen, object\[]. Die detaillierten Felder lauten wie folgt:</p>

              <ParamField body="type" type="string" required={true}>
                Der Typ des Inhaltsbestandteils, in diesem Fall `text`.
              </ParamField>

              <ParamField body="text" type="string" required={true}>
                Der Textinhalt.
              </ParamField>
            </Tab>

            <Tab title="Bildinhalt">
              <p class="param_text">Nur mit Vision-Language-Modellen verwendbar.</p>
              <p class="param_text">Ein Array von Inhaltsbestandteilen, object\[]. Die detaillierten Felder lauten wie folgt:</p>

              <ParamField body="type" type="string" required={true}>
                Der Typ des Inhaltsbestandteils, in diesem Fall `image_url`.
              </ParamField>

              <ParamField body="image_url" type="string" required={true}>
                <Expandable title="Eigenschaften" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    Die URL des Bildes oder base64-codierte Bilddaten (Modelle der claude-Reihe unterstützen nur base64-codierte Bilddaten).
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>

            <Tab title="Videoinhalt">
              <p class="param_text">Nur mit Modellen verwendbar, die Video unterstützen.</p>
              <p class="param_text">Ein Array von Inhaltsbestandteilen, object\[]. Die detaillierten Felder lauten wie folgt:</p>

              <ParamField body="type" type="string" required={true}>
                Der Typ des Inhaltsbestandteils, in diesem Fall `video_url`.
              </ParamField>

              <ParamField body="video_url" type="string" required={true}>
                <Expandable title="Eigenschaften" defaultOpen={true}>
                  <ParamField body="url" type="string" required={true}>
                    Die URL des Videos.
                  </ParamField>
                </Expandable>
              </ParamField>
            </Tab>
          </Tabs>
        </div>
      </Frame>
    </ParamField>

    <ParamField body="role" type="string" required={true}>
      Die Rolle des Autors der Nachricht. Kann system, user oder assistant sein.

      Enumerationswerte: `system`, `user`, `assistant`
    </ParamField>

    <ParamField body="name" type="string">
      Der Name des Autors dieser Nachricht. Kann a-z, A-Z, 0-9 und Unterstriche enthalten; maximale Länge 64 Zeichen.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="max_tokens" type="integer" required={true}>
  Die maximale Anzahl von Tokens, die in der Vervollständigung generiert werden.

  Wenn die Anzahl der Tokens Ihres Prompts (vorherige Nachrichten) plus max\_tokens die Kontextlänge des Modells überschreitet, hängt das Verhalten von context\_length\_exceeded\_behavior ab. Standardmäßig wird max\_tokens reduziert, um in das Kontextfenster zu passen, anstatt einen Fehler zurückzugeben.
</ParamField>

<ParamField body="stream" type="boolean | null" default={false}>
  Ob Teilfortschritte streamend zurückgegeben werden sollen. Wenn festgelegt, werden Tokens als servergesendete Ereignisse (SSE) nur mit Daten gesendet, sobald sie verfügbar sind, und der Stream wird mit einer `data: [DONE]`-Nachricht beendet.
</ParamField>

<ParamField body="stream_options" type="object | null">
  Optionen für die Streaming-Antwort. Legen Sie dies nur fest, wenn stream auf true gesetzt ist.

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ParamField body="include_usage" type="boolean">
      Wenn festgelegt, wird vor der data: \[DONE]-Nachricht ein zusätzlicher Chunk gestreamt. Das usage-Feld in diesem Chunk zeigt die Token-Nutzungsstatistiken für die gesamte Anfrage, während das choices-Feld immer ein leeres Array ist. Alle anderen Chunks enthalten ebenfalls ein usage-Feld, dessen Wert jedoch null ist.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="n" type="integer | null" default={1}>
  Die Anzahl der Vervollständigungen, die für jeden Prompt generiert werden.

  Hinweis: Da dieser Parameter viele Vervollständigungen generieren kann, kann er Ihr Token-Kontingent schnell verbrauchen. Verwenden Sie ihn mit Vorsicht und stellen Sie sicher, dass Sie sinnvolle Einstellungen für max\_tokens und stop haben.

  Erforderlicher Bereich: `1 < x < 128`
</ParamField>

<ParamField body="seed" type="integer | null">
  Wenn angegeben, wird unser System sein Bestes tun, deterministisch zu sampeln, sodass wiederholte Anfragen mit demselben seed und denselben Parametern dieselben Ergebnisse zurückgeben sollten.
</ParamField>

<ParamField body="frequency_penalty" type="number | null" default={0}>
  Positive Werte bestrafen neue Tokens basierend auf ihrer bisherigen Häufigkeit im Text und verringern die Wahrscheinlichkeit, dass das Modell dieselbe Zeile wortwörtlich wiederholt.

  Wenn das Ziel nur darin besteht, wiederholte Samples leicht zu reduzieren, liegen sinnvolle Werte zwischen 0.1 und 1. Wenn Wiederholungen stark unterdrückt werden sollen, kann der Koeffizient auf 2 erhöht werden, dies kann jedoch die Sample-Qualität erheblich verringern. Negative Werte können verwendet werden, um die Wahrscheinlichkeit von Wiederholungen zu erhöhen.

  Siehe auch presence\_penalty, um Tokens, die mindestens einmal vorkommen, mit einer festen Rate zu bestrafen.

  Erforderlicher Bereich: `-2 < x < 2`
</ParamField>

<ParamField body="presence_penalty" type="number | null" default={0}>
  Positive Werte bestrafen neue Tokens basierend darauf, ob sie bereits im Text vorkommen, und erhöhen die Wahrscheinlichkeit, dass das Modell über neue Themen spricht.

  Wenn das Ziel nur darin besteht, wiederholte Samples leicht zu reduzieren, liegen sinnvolle Werte zwischen 0.1 und 1. Wenn Wiederholungen stark unterdrückt werden sollen, kann der Koeffizient auf 2 erhöht werden, dies kann jedoch die Sample-Qualität erheblich verringern. Negative Werte können verwendet werden, um die Wahrscheinlichkeit von Wiederholungen zu erhöhen.

  Siehe auch `frequency_penalty`, um Tokens basierend auf ihrer Auftretenshäufigkeit mit einer steigenden Rate zu bestrafen.

  Erforderlicher Bereich: `-2 < x < 2`
</ParamField>

<ParamField body="repetition_penalty" type="number | null">
  Wendet eine Strafe auf wiederholte Tokens an, um Wiederholungen zu verhindern oder zu fördern. Ein Wert von 1.0 bedeutet keine Strafe und erlaubt freie Wiederholung. Werte über 1.0 bestrafen Wiederholungen und verringern die Wahrscheinlichkeit wiederholter Tokens. Werte zwischen 0.0 und 1.0 belohnen Wiederholungen und erhöhen die Chance auf wiederholte Tokens. Für ein gutes Gleichgewicht wird in der Regel ein Wert von 1.2 empfohlen. Beachten Sie, dass die Strafe sowohl auf die generierte Ausgabe als auch auf den Prompt in Decoder-only-Modellen angewendet wird.

  Erforderlicher Bereich: `0 < x < 2`
</ParamField>

<ParamField body="stop" type="string | null">
  Bis zu 4 Sequenzen, bei denen die API die Generierung weiterer Tokens stoppt. Der zurückgegebene Text enthält die Stoppsequenz.
</ParamField>

<ParamField body="temperature" type="number | null" default={1}>
  Die zu verwendende Sampling-Temperatur zwischen 0 und 2. Höhere Werte wie 0.8 machen die Ausgabe zufälliger, während niedrigere Werte wie 0.2 sie fokussierter und deterministischer machen.

  Wir empfehlen in der Regel, entweder dies oder `top_p` zu ändern, aber nicht beides gleichzeitig.

  Erforderlicher Bereich: `0 < x < 2`
</ParamField>

<ParamField body="top_p" type="number | null">
  Eine Alternative zur Sampling-Temperatur, bekannt als Nucleus Sampling, bei der das Modell die Token-Ergebnisse mit einer top\_p-Wahrscheinlichkeitsmasse berücksichtigt. Daher bedeutet 0.1, dass nur die Tokens berücksichtigt werden, die die obersten 10 % der Wahrscheinlichkeitsmasse ausmachen. Wir empfehlen in der Regel, entweder dies oder die Temperatur zu ändern, aber nicht beides gleichzeitig.

  Erforderlicher Bereich: `0 < x <= 1`
</ParamField>

<ParamField body="top_k" type="integer | null">
  Top-k-Sampling ist eine weitere Sampling-Methode, bei der die k wahrscheinlichsten nächsten Tokens gefiltert werden und die Wahrscheinlichkeitsmasse nur zwischen diesen k nächsten Tokens neu verteilt wird. Der Wert von k steuert die Anzahl der Kandidaten für das nächste Token bei jedem Schritt während der Texterzeugung.

  Erforderlicher Bereich: `1 < x < 128`
</ParamField>

<ParamField body="min_p" type="number | null">
  Gibt die minimale Wahrscheinlichkeit an, mit der Tokens berücksichtigt werden, relativ zur Wahrscheinlichkeit des wahrscheinlichsten Tokens.

  Erforderlicher Bereich: `0 <= x <= 1`
</ParamField>

<ParamField body="logit_bias" type="map[string, integer] | null" required={false}>
  Ändert die Wahrscheinlichkeit, dass angegebene Tokens in der Vervollständigung erscheinen.

  Akzeptiert ein JSON-Objekt, das Tokens auf zugehörige Bias-Werte zwischen -100 und 100 abbildet.
  Mathematisch wird der Bias zu den vom Modell vor dem Sampling erzeugten Logits addiert. Der genaue Effekt variiert je nach Modell.

  Beispielsweise erhöht das Festlegen von `"logit_bias":{"1024": 6}` die Wahrscheinlichkeit von Tokens mit der Token-ID 1024.
</ParamField>

<ParamField body="logprobs" type="boolean | null" default={false}>
  Ob die Log-Wahrscheinlichkeiten der Ausgabe-Tokens zurückgegeben werden sollen. Wenn true, werden die Log-Wahrscheinlichkeiten jedes Ausgabe-Tokens im Nachrichteninhalt zurückgegeben.
</ParamField>

<ParamField body="top_logprobs" type="integer | null">
  Eine Ganzzahl zwischen 0 und 20, die angibt, wie viele der wahrscheinlichsten Tokens an jeder Token-Position zurückgegeben werden, jeweils mit einer zugehörigen Log-Wahrscheinlichkeit. Wenn dieser Parameter verwendet wird, muss `logprobs` auf true gesetzt sein.

  Erforderlicher Bereich: `0 <= x <= 20`
</ParamField>

<ParamField body="tools" type="object[] | null">
  Eine Liste von Tools, die das Modell aufrufen kann. Derzeit werden nur Funktionen als Tools unterstützt. Verwenden Sie dies, um eine Liste von Funktionen bereitzustellen, für die das Modell JSON-Eingaben generieren kann.

  Weitere Informationen zu Funktionsaufrufen finden Sie im [Leitfaden zu Funktionsaufrufen](/de/docs/model/llm-function-calling).

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ParamField body="type" type="string" required={true}>
      Der Typ des Tools.

      Unterstützter Typ: `function`
    </ParamField>

    <ParamField body="function" type="object" required={true}>
      <Expandable title="Eigenschaften" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          Der Name der aufzurufenden Funktion. Muss a-z, A-Z, 0-9 sein oder Unterstriche und Bindestriche enthalten; maximale Länge 64.
        </ParamField>

        <ParamField body="description" type="string | null">
          Die Beschreibung der Funktion, die das Modell verwendet, um auszuwählen, wann und wie die Funktion aufgerufen wird.
        </ParamField>

        <ParamField body="parameters" type="object | null">
          Die von der Funktion akzeptierten Parameter, beschrieben als JSON-Schema-Objekt. Dokumentation zum Format finden Sie in der [JSON-Schema-Referenz](https://json-schema.org/understanding-json-schema/).
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          Ob bei der Generierung von Funktionsaufrufen die strikte Schema-Einhaltung aktiviert werden soll. Wenn auf true gesetzt, folgt das Modell exakt dem in den Parameterfeldern definierten Schema.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="response_format" type="object | null">
  Ermöglicht, das Modell zur Generierung eines bestimmten Ausgabeformats zu zwingen.

  Auf `{ "type": "json_schema", "json_schema": {...} }` setzen, um strukturierte Ausgaben zu aktivieren und sicherzustellen, dass das Modell mit dem von Ihnen bereitgestellten JSON schema übereinstimmt.

  Auf `{ "type": "json_object" }` setzen, um den älteren JSON-Modus zu aktivieren und sicherzustellen, dass die vom Modell generierte Nachricht gültiges JSON ist. Für Modelle, die dies unterstützen, wird `json_schema` empfohlen.

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ParamField body="type" type="string" required={true} default="text">
      Enumerationswerte: `text`, `json_object`, `json_schema`
    </ParamField>

    <ParamField body="json_schema" type="object | null">
      JSON-Schema-Antwortformat. Wird verwendet, um strukturierte JSON-Antworten zu generieren.

      Wird nur unterstützt, wenn `type` auf `json_schema` gesetzt ist, und ist auch erforderlich, wenn `type` auf `json_schema` gesetzt ist.

      Weitere Informationen finden Sie im [Leitfaden zu strukturierten Ausgaben](/de/docs/model/llm-structured-outputs).

      <Expandable title="Eigenschaften" defaultOpen={false}>
        <ParamField body="name" type="string" required={true}>
          Der Name des Antwortformats. Muss a-z, A-Z, 0-9 sein oder Unterstriche und Bindestriche enthalten; maximale Länge 64.
        </ParamField>

        <ParamField body="description" type="string | null">
          Die Beschreibung des Antwortformats, die das Modell verwendet, um zu bestimmen, wie es in diesem Format antworten soll.
        </ParamField>

        <ParamField body="schema" type="object | null">
          Das Schema des Antwortformats, beschrieben als JSON-Schema-Objekt. Erfahren Sie [hier](https://json-schema.org/specification), wie Sie ein JSON schema erstellen.

          Unterstützte Typen: `string`, `number`, `integer`, `boolean`, `array`, `object`, `enum`, `anyOf`.
        </ParamField>

        <ParamField body="strict" type="boolean" default={false}>
          Ob bei der Generierung der Ausgabe die strikte Schema-Einhaltung aktiviert werden soll. Wenn auf true gesetzt, folgt das Modell immer exakt dem im schema-Feld definierten Schema. Wenn strict true ist, wird nur eine Teilmenge von JSON Schema unterstützt.

          Wenn Sie strukturierte Ausgaben aktivieren, indem Sie `strict: true` angeben, und die API mit einem nicht unterstützten JSON Schema aufrufen, erhalten Sie einen Fehler.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="separate_reasoning" type="boolean | null" default={false}>
  Ob die Schlussfolgerung vom "content" in das Feld "reasoning\_content" getrennt werden soll.

  Unterstützte Modelle:

  * `deepseek/deepseek-r1-turbo`
</ParamField>

<ParamField body="enable_thinking" type="boolean | null" default={true}>
  Steuert den Wechsel zwischen Denkmodus und Nicht-Denkmodus.

  Unterstützte Modelle:

  * `zai-org/glm-4.5`
</ParamField>

## Antwortinformationen

<ResponseField name="choices" type="object[]" required={true}>
  Liste der Chat-Vervollständigungsoptionen.

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ResponseField name="finish_reason" type="string" required={true}>
      Der Grund, aus dem das Modell die Generierung von Tokens gestoppt hat. "stop", wenn das Modell einen natürlichen Stoppunkt oder die bereitgestellte Stoppsequenz erreicht; "length", wenn die in der Anfrage angegebene maximale Anzahl von Tokens erreicht wurde.

      Verfügbare Optionen: `stop`, `length`
    </ResponseField>

    <ResponseField name="index" type="integer" required={true}>
      Der Index der Chat-Vervollständigungsoption.
    </ResponseField>

    <ResponseField name="message" type="object" required={true}>
      <Expandable title="Eigenschaften" defaultOpen={false}>
        <ResponseField name="role" type="string" required={true}>
          Die Rolle des Autors dieser Nachricht.

          Verfügbare Optionen: `system`, `user`, `assistant`
        </ResponseField>

        <ResponseField name="content" type="string | null">
          Der Inhalt der Nachricht.
        </ResponseField>

        <ResponseField name="reasoning_content" type="string | null">
          Der Inhalt der Schlussfolgerungsschritte.

          <Warning>
            Dieses Feld ist nur verfügbar, wenn `separate_reasoning` auf true gesetzt ist.
          </Warning>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created" type="integer" required={true}>
  Die Unix-Zeit (in Sekunden), zu der die Antwort generiert wurde.
</ResponseField>

<ResponseField name="id" type="string" required={true}>
  Die eindeutige Kennung der Antwort.
</ResponseField>

<ResponseField name="model" type="string" required={true}>
  Das für die Chat-Vervollständigung verwendete Modell.
</ResponseField>

<ResponseField name="object" type="string" required={true}>
  Der Objekttyp, immer `chat.completion`.
</ResponseField>

<ResponseField name="usage" type="object">
  Nutzungsstatistiken.

  Bei Streaming-Antworten ist das usage-Feld im letzten zurückgegebenen Antwortblock enthalten.

  <Expandable title="Eigenschaften" defaultOpen={false}>
    <ResponseField name="completion_tokens" type="integer" required={true}>
      Die Anzahl der Tokens in der generierten Vervollständigung.
    </ResponseField>

    <ResponseField name="prompt_tokens" type="integer" required={true}>
      Die Anzahl der Tokens im Prompt.
    </ResponseField>

    <ResponseField name="total_tokens" type="integer" required={true}>
      Die Gesamtanzahl der in der Anfrage verwendeten Tokens (Prompt + Vervollständigung).
    </ResponseField>
  </Expandable>
</ResponseField>
