Skip to main content
Verwende /v1/chat/completions für OpenAI-kompatible Textgenerierung.

Streaming

Setze stream: true, um Server-Sent Events zu empfangen. Jedes Event ist ein OpenAI chat.completion.chunk, und der Stream endet mit data: [DONE].

Parameter

OpenAI-Standardparameter werden akzeptiert, darunter temperature, top_p, max_tokens, stop, n, frequency_penalty, presence_penalty, seed, response_format, tools, tool_choice, logprobs, top_logprobs, logit_bias, user und stream.

Reasoning-Stärke

Setze reasoning_effort auf oberster Ebene, wenn das Modell konfigurierbares Reasoning unterstützt. Auch reasoning.effort im Responses-Format wird akzeptiert. Werden beide angegeben, müssen sie übereinstimmen; andernfalls wird 400 zurückgegeben.
Die unterstützten Werte hängen vom Modell ab. Ohne Angabe bleibt das Standardverhalten erhalten. Siehe modellabhängige Reasoning-Steuerung. Welche Efforts ein Modell akzeptiert, welcher Standard gilt und ob Reasoning deaktiviert werden kann, steht für jedes Modell in GET /v1/models unter capability_metadata.reasoning; so lässt sich ein Modell konfigurieren, ohne eine Tabelle fest zu verdrahten. Ausgabelimits wie max_completion_tokens, max_output_tokens und native Entsprechungen zählen Reasoning- und Antwort-Tokens gemeinsam. Effort ist kein Ausgabetokenlimit. Das Budget kann weiterhin erschöpft werden (finish_reason: "length" in Chat Completions), sodass die endgültige Antwort unvollständig oder leer bleibt.

Kimi K3-Kompatibilität

kimi-k3 verwendet denselben OpenAI-kompatiblen Endpoint, folgt aber einem modellspezifischen Vertrag:
  • K3 denkt immer und kann nicht deaktiviert werden. Akzeptiert werden low, high und max; der Standard ist max, und ein niedrigerer Effort erkauft geringere Latenz mit weniger Reasoning-Tiefe. Das thinking-Objekt aus K2.x wird nur als aktivierter Kompatibilitätsalias akzeptiert.
  • Bevorzuge max_completion_tokens. APIAny akzeptiert das veraltete max_tokens und verwendet für Kimi K3 max_completion_tokens. Ohne Angabe eines Limits gilt der Modellstandard. Das explizite Maximum beträgt 1.048.576 Tokens.
  • Die Sampling-Einstellungen von K3 sind fest. APIAny entfernt temperature, top_p, frequency_penalty und presence_penalty nur für K3; n muss 1 sein.
  • reasoning_content ist der Reasoning-Verlauf und content die endgültige Antwort. Streaming liefert beide als getrennte Deltas. Führe den Reasoning-Verlauf nicht mit der endgültigen Antwort zusammen.
  • Sende die vollständige Assistant-Nachricht einschließlich reasoning_content und tool_calls bei mehrstufigen Anfragen und Tool-Aufrufen unverändert zurück.
  • Die letzte Assistant-Nachricht darf partial: true verwenden. Eine Systemnachricht ohne Inhalt kann tools tragen, um K3-Werkzeuge dynamisch zu laden.
  • Bild- und Video-Inhaltsblöcke für K3 müssen eine Base64-data:-URL oder eine ms://-Datei-ID verwenden. Öffentliche HTTP-Medien-URLs werden abgelehnt, bevor die Modellanfrage gesendet wird.
Wenn finish_reason length ist, wurde das Ausgabebudget erschöpft. Die Antwort bleibt OpenAI-kompatibel, aber die endgültige Antwort kann fehlen oder unvollständig sein; erhöhe max_completion_tokens oder kürze die Eingabe, bevor du es erneut versuchst.

Hinweise

  • Das model ist eine öffentliche APIAny.AI-Modell-ID.
  • Der Token-Verbrauch wird in das OpenAI-typische usage-Objekt normalisiert, sofern Verbrauchsdaten verfügbar sind.

GPT-6-Ausgabe und Stream-Abschluss

Bei gpt-6-astra werden erkennbare führende Denkblöcke von der endgültigen Antwort getrennt. Die Antwort steht in content / output_text, der Denktext in separaten Reasoning-Feldern oder Summary-Ereignissen. Explizite Tag-Beispiele und mehrdeutige Markierungen bleiben erhalten. Reasoning-Effort und Token-Limits ändern sich dadurch nicht. HTTP 200 bei einem Stream garantiert keinen Erfolg. Behandeln Sie Fehlerereignisse und kennzeichnen Sie Teilantworten als unvollständig. Lesen Sie bei Chat den letzten usage-Block vor [DONE]; unterscheiden Sie bei Responses zwischen response.completed, response.incomplete und response.failed / error. Bei GPT-6 Chat beendet [DONE] den Stream, hebt aber frühere Fehler nicht auf und garantiert keine vollständige Antwort. Prüfen Sie auch finish_reason: length bedeutet, dass das Ausgabelimit erreicht wurde, und content_filter weist auf gefilterte Inhalte hin. Beide Werte bleiben erhalten und werden nicht zu stop. Wird die Verbindung vor dem Abschluss geschlossen oder ein Fehlerereignis empfangen, gilt der Teiltext nicht als vollständige Antwort.