Referenz
Chat Completions
Text erzeugen – mit Streaming, Tool Calling und Denkstufen, kompatibel zur OpenAI Chat Completions API.
POST https://api-otc.feazy.ai/v1/chat/completionsBeispiel
Abschnitt betitelt „Beispiel“curl https://api-otc.feazy.ai/v1/chat/completions \ -H "Authorization: Bearer $FEAZY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gemini-3.8-flash", "messages": [ {"role": "system", "content": "Du antwortest kurz und auf Deutsch."}, {"role": "user", "content": "Fasse die Vorteile von Ganztagsschulen in drei Punkten zusammen."} ] }'from openai import OpenAI
client = OpenAI(base_url="https://api-otc.feazy.ai/v1", api_key=os.environ["FEAZY_API_KEY"])
response = client.chat.completions.create( model="gemini-3.8-flash", messages=[ {"role": "system", "content": "Du antwortest kurz und auf Deutsch."}, {"role": "user", "content": "Fasse die Vorteile von Ganztagsschulen in drei Punkten zusammen."}, ],)print(response.choices[0].message.content)const response = await client.chat.completions.create({ model: 'gemini-3.8-flash', messages: [ { role: 'system', content: 'Du antwortest kurz und auf Deutsch.' }, { role: 'user', content: 'Fasse die Vorteile von Ganztagsschulen in drei Punkten zusammen.' }, ],});console.log(response.choices[0].message.content);Parameter
Abschnitt betitelt „Parameter“| Parameter | Typ | Beschreibung |
|---|---|---|
model |
string, Pflicht | Modell-ID, siehe Modelle |
messages |
array, Pflicht | Verlauf im OpenAI-Format (system, user, assistant, tool) |
stream |
boolean | Antwort als Server-Sent Events streamen |
stream_options.include_usage |
boolean | beim Streaming am Ende die Token-Nutzung senden |
temperature |
number | Zufälligkeit, Standard 0.7 |
max_tokens / max_completion_tokens |
integer | maximale Länge der Antwort |
reasoning_effort |
string | Denkstufe bei Modellen, die das unterstützen, z. B. low, medium, high |
tools |
array | Funktionen im OpenAI-Format für Tool Calling |
n |
integer | muss 1 sein |
user |
string | eigene Kennung des Endnutzers |
Weitere Felder werden akzeptiert, aber ignoriert.
Antwort
Abschnitt betitelt „Antwort“{ "id": "chatcmpl-…", "object": "chat.completion", "created": 1793000000, "model": "gemini-3.8-flash", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "…" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 42, "completion_tokens": 96, "total_tokens": 138 }}Ruft das Modell eine deiner Funktionen auf, enthält message die tool_calls und finish_reason ist tool_calls.
Streaming
Abschnitt betitelt „Streaming“Mit "stream": true kommen chat.completion.chunk-Ereignisse; der erste Chunk enthält die Rolle, die folgenden die Text- bzw. Tool-Call-Teile. Am Ende folgt – mit include_usage – ein Chunk mit der Nutzung und dann data: [DONE]. Bei langen Antworten sendet FEAZY alle 10 Sekunden einen Keep-alive-Kommentar, damit Verbindungen nicht abbrechen. Ein Fehler während des Streams kommt als data: {"error": {…}} vor [DONE].