Antworten
POST /v1/responses: Text mit FTI-3, mit Anweisung, Verlauf, Bildern, PDF und eigenen Werkzeugen.
POST https://api.flixtake.app/v1/responsesDer Hauptzugang zu FTI-3. Du schickst eine Eingabe, für ein Gespräch den bisherigen Verlauf, und bekommst die nächste Antwort. Die API merkt sich nichts zwischen zwei Anfragen: Für ein Gespräch schickst du jedes Mal den ganzen Verlauf mit.
Felder der Anfrage
| Feld | Pflicht | Bedeutung |
|---|---|---|
model | nein | fti-3-sofort (Standard), fti-3-mittel oder fti-3-hoch |
input | ja | Ein Text oder der Verlauf als Liste aus { "role": "user" | "assistant", "content": … } |
instructions | nein | Anweisung für die ganze Unterhaltung, zum Beispiel Rolle, Ton oder Format |
max_output_tokens | nein | Höchstzahl der Ausgabe-Tokens, höchstens 8.192. Ohne Angabe 8.192 |
stream | nein | true schickt die Antwort Stück für Stück, siehe Streaming |
reasoning | nein | true oder { "effort": "low" | "medium" | "high" }: FTI-3 Mittel und Hoch denken vor der Antwort nach |
temperature | nein | 0 bis 1, nur bei FTI-3 Sofort. Mittel und Hoch ignorieren das Feld |
stop | nein | Ein Text oder bis zu 4 Texte, bei denen die Antwort endet |
tools | nein | Eigene Werkzeuge, die dein Programm ausführt, siehe unten |
tool_choice | nein | auto (Standard), none, required oder { "name": "…" } |
Andere Felder lehnt die API mit 400 und invalid_request ab, statt sie still zu übergehen.
Beispiel mit Anweisung
curl https://api.flixtake.app/v1/responses \
-H "Authorization: Bearer $FLIXTAKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fti-3-mittel",
"instructions": "Du bist Aufnahmeleiter. Antworte als nummerierte Liste.",
"input": "Was gehört auf die Checkliste für einen Nachtdreh im Wald?",
"max_output_tokens": 1024
}'Antwort
{
"id": "resp_8f3a2c71d04e9b5a6c1e7d20",
"object": "response",
"created_at": 1792597771,
"model": "fti-3-sofort",
"status": "completed",
"finish_reason": "stop",
"output": [
{ "type": "text", "text": "Ein Leuchtturmwärter findet im Logbuch seines Vorgängers …" }
],
"output_text": "Ein Leuchtturmwärter findet im Logbuch seines Vorgängers …",
"usage": { "input_tokens": 31, "output_tokens": 58, "total_tokens": 89, "cached_input_tokens": 0 }
}| Feld | Bedeutung |
|---|---|
output_text | Der ganze Text der Antwort am Stück |
output | Alle Teile der Antwort: text, reasoning (die Überlegung) und tool_call (ein Werkzeugaufruf) |
status | completed oder incomplete, wenn die Antwort abgeschnitten wurde |
finish_reason | stop, stop_sequence (dann steht der Text in stop_sequence), tool_call, max_output_tokens oder context_window |
usage | input_tokens, output_tokens und total_tokens dieser Anfrage. Eingabe und Ausgabe zählen zum Kontingent |
Verlauf
Für eine Rückfrage hängst du die letzte Antwort als assistant an und danach die neue Frage als user.
[
{ "role": "user", "content": "Schreib eine Logline für einen Kurzfilm über einen Leuchtturmwärter." },
{ "role": "assistant", "content": "Ein Leuchtturmwärter findet im Logbuch seines Vorgängers …" },
{ "role": "user", "content": "Jetzt als Komödie." }
]Bilder und PDF als Eingabe
content darf statt Text eine Liste von Teilen sein. Bilder (image: PNG, JPEG, GIF, WebP) und PDF (file) gehen als Base64 in data mit media_type oder als öffentlich erreichbare url mit. Eine Anfrage darf insgesamt 32 MB groß sein.
{
"role": "user",
"content": [
{ "type": "image", "media_type": "image/jpeg", "data": "/9j/4AAQ…" },
{ "type": "text", "text": "Welche Einstellungsgröße ist das, und was würdest du am Licht ändern?" }
]
}Eigene Werkzeuge
Unter tools beschreibst du Funktionen deines Programms mit name, description und einem JSON-Schema in parameters. Braucht FTI-3 eines davon, endet die Antwort mit finish_reason: "tool_call" und einem Teil tool_call mit id, name und arguments. Dein Programm führt die Funktion aus und schickt die ganze Antwort als assistant zurück, danach das Ergebnis als Teil tool_result mit derselben call_id. Werkzeuge, die auf unserer Seite laufen würden, wie eine Websuche, gibt es über die API nicht.
[
{
"name": "drehtag_wetter",
"description": "Wettervorhersage für einen Drehort und ein Datum",
"parameters": {
"type": "object",
"properties": {
"ort": { "type": "string" },
"datum": { "type": "string", "description": "YYYY-MM-DD" }
},
"required": ["ort", "datum"]
}
}
][
{ "role": "user", "content": "Können wir am 3. Mai in Cuxhaven draußen drehen?" },
{ "role": "assistant", "content": [
{ "type": "tool_call", "id": "call_01K8…", "name": "drehtag_wetter", "arguments": { "ort": "Cuxhaven", "datum": "2027-05-03" } }
] },
{ "role": "user", "content": [
{ "type": "tool_result", "call_id": "call_01K8…", "output": "12 Grad, Regen ab 14 Uhr" }
] }
]Hat FTI-3 vor einem Werkzeugaufruf nachgedacht, steht in output auch ein Teil reasoning mit einem Feld state. Schick ihn unverändert mit zurück, sonst lehnt die API den Verlauf ab.