Chat-Completion-API

Chat Completion

Dieser QAnswer-Endpunkt ist eine OpenAI-kompatible Chat-Completion.

Weitere Informationen finden Sie in der OpenAI-Dokumentation zum vollständigen Anfrage-/Antwortschema.

Für die Nutzung dieses Endpunkts ist ein API-Schlüssel erforderlich:

  • Erstellen Sie einen auf Ihrer Profilseite
  • Übergeben Sie den API-Schlüssel als Bearer-Token im Authorization-Header.

Ein Administrator muss einem Benutzer Credits zuweisen. Neue API-Schlüssel haben standardmäßig 0 Credits.

Payload-Beispiel

POST

/api/v1/{llm_id}/chat/completions


Try it
Code

Anfrageparameter

Der Endpunkt liest das Anfrageschema der aktuellen OpenAI-API. Wissenswert:

  • max_completion_tokens begrenzt die Antwort einschließlich Reasoning. Das ältere max_tokens wird weiterhin gelesen, wenn max_completion_tokens fehlt. Fehlen beide, gilt die Einstellung Max. Ausgabetoken des Modells. Keiner der beiden darf das Kontextfenster des Modells überschreiten.
  • reasoning_effort nimmt none, minimal, low, medium, high oder xhigh an, und max bei Modellen, die es anbieten. minimal wird als low an das Modell gesendet. Ohne Angabe gilt die Reasoning-Einstellung des Modells.
  • Eine developer-Nachricht erreicht das Modell als system-Nachricht.
  • Das Reasoning des Modells ist nicht in der Antwort enthalten. Senden Sie include_reasoning: true (eine QAnswer-Erweiterung), um es zu erhalten: Es kommt dann in message.reasoning_content, beim Streaming in delta.reasoning_content.
  • Ohne temperature gilt der Standardwert des Modells.
  • n größer als 1 wird mit einem 400-Fehler abgelehnt, wenn das Modell nur eine Auswahl zurückgeben kann (zum Beispiel Anthropic-Modelle).
  • Ein Fehler kommt mit dem Fehlerobjekt von OpenAI: error.message, error.type, error.param und error.code, der QAnswer-Fehlerschlüssel.

Token-Verbrauch

Jede Antwort meldet die verbrauchten Tokens in usage: prompt_tokens, completion_tokens und total_tokens. Wenn der Anbieter des Modells eine Aufschlüsselung liefert, gibt QAnswer sie weiter:

  • prompt_tokens_details.cached_tokens: Prompt-Tokens, die aus dem Prompt-Cache des Anbieters bedient wurden.
  • completion_tokens_details.reasoning_tokens: Tokens, die ein Reasoning-Modell vor dem Schreiben seiner Antwort verbraucht hat.
  • cache_creation_input_tokens und cache_read_input_tokens: die Cache-Zähler von Anthropic-Modellen für in den Cache geschriebene und aus dem Cache gelesene Tokens. Jeder erscheint nur, wenn er nicht 0 ist.
"usage": {
  "prompt_tokens": 1250,
  "completion_tokens": 310,
  "total_tokens": 1560,
  "prompt_tokens_details": { "cached_tokens": 1024 },
  "completion_tokens_details": { "reasoning_tokens": 192 }
}

Die Felder der Aufschlüsselung erscheinen nur, wenn der Anbieter sie liefert: Prüfen Sie, ob ein Feld vorhanden ist, bevor Sie es lesen.

Eine gestreamte Antwort meldet usage nur, wenn die Anfrage stream_options.include_usage auf true setzt: usage kommt dann in einem letzten Chunk, dessen choices-Liste leer ist.

Um Cache-Tokens getrennt von den übrigen Prompt-Tokens zu bepreisen, legen Sie die Cached Input Token Cost des Modells fest, siehe LLM-Anbieter.