Streaming

Antworten Stück für Stück als Server-Sent Events empfangen.

Mit "stream": true kommt die Antwort als Server-Sent Events, Stück für Stück, sobald FTI-3 schreibt. Für Chat-Oberflächen ist das der übliche Weg: Der erste Text steht nach einem Bruchteil der Zeit da.

curl -N https://api.flixtake.app/v1/responses \
  -H "Authorization: Bearer $FLIXTAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fti-3-sofort",
    "input": "Beschreib in drei Sätzen eine Morgenstimmung am Set.",
    "max_output_tokens": 300,
    "stream": true
  }'

Ereignisse

Jedes Ereignis besteht aus einer Zeile event: und einer Zeile data: mit JSON. Im JSON steht der Name noch einmal in type. In dieser Reihenfolge:

EreignisInhalt
response.createdDie Antwort beginnt: response.id und response.model
output.addedEin neuer Teil beginnt, mit index und item.type (text, reasoning oder tool_call)
output.text.deltaEin Stück Text in delta
output.reasoning.deltaEin Stück der Überlegung in delta, wenn reasoning an ist
output.arguments.deltaEin Stück der Werkzeug-Argumente als JSON-Text in delta
output.doneDer Teil ist fertig, item enthält ihn vollständig
response.completedEnde: response ist die ganze Antwort wie ohne Strom, mit usage
errorFehler mitten im Strom, mit error.code und error.message

Dazwischen schickt die API alle 15 Sekunden eine Kommentarzeile : ping, damit lange Antworten nicht an einer Zeitüberschreitung unterwegs scheitern. Zeilen, die nicht mit data: beginnen, kannst du überspringen.

Chat-Format im Strom

Bei POST /v1/chat/completions kommen chat.completion.chunk-Ereignisse mit dem Text in choices[0].delta.content. Den Schluss markiert data: [DONE].

curl -N https://api.flixtake.app/v1/chat/completions \
  -H "Authorization: Bearer $FLIXTAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fti-3-sofort",
    "max_tokens": 300,
    "stream": true,
    "messages": [{"role": "user", "content": "Nenn drei Einstellungsgrößen."}]
  }'

Abbrechen

Schließt dein Programm die Verbindung, hört FTI-3 auf zu schreiben. Die Tokens bis dahin zählen zum Kontingent.