Chat Completions
POST /v1/chat/completions ist der eine Endpunkt, der alles erledigt: Einzelfragen, mehrteilige Unterhaltungen, Tool Calling und Bild-Eingabe, blockierend oder gestreamt.
Request
POST https://api.artfical.com/v1/chat/completions
Authorization: Bearer tai-sk-...
Content-Type: application/json
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| model | string | Ja | Eine der auf der Seite Modelle aufgeführten Modell-IDs, z. B. "tai-4.1". Ein nicht erkannter Wert wird mit 400 abgelehnt, bevor irgendeine Generierung stattfindet. |
| messages | array | Ja | Die bisherige Unterhaltung, älteste zuerst. Den Aufbau der einzelnen Einträge finden Sie unten unter Messages. |
| stream | boolean | Nein | Standardmäßig false. Bei true ist die Antwort ein Server-Sent-Events-Stream statt eines einzelnen JSON-Bodys; siehe Streaming. |
| tools | array | Nein | OpenAI-förmige Function-Tool-Definitionen, die das Modell aufrufen kann. Siehe Tool Calling. |
| temperature, top_p, presence_penalty, frequency_penalty, seed, stop | verschieden | Nein | Sampling-Steuerungen, unverändert weitergereicht. Zulässige Wertebereiche finden Sie unter Sampling-Parameter. |
Messages
Jeder Eintrag in messages hat eine role und einen content. Vier Rollen werden erkannt:
| Rolle | Bedeutung |
|---|---|
| system | Hintergrundanweisungen für die Unterhaltung. Sind mehrere system-Nachrichten vorhanden, werden sie der Reihe nach zusammengefasst. Eine System-Nachricht überschreibt niemals tAIs eigene Kernidentität und Verhaltensregeln; sie ergänzt den Kontext der Unterhaltung, nicht das, was tAI grundlegend ist. |
| user | Etwas, das die Person (oder Ihre Anwendung, in ihrem Namen) sagt. |
| assistant | Eine vorherige Antwort des Modells. Fügen Sie frühere assistant-Nachrichten ein, wenn Sie den Gesprächsverlauf senden, damit das Modell den vollständigen Hin-und-Her-Verlauf hat, nicht nur die letzte Nutzernachricht. Eine assistant-Nachricht kann außerdem tool_calls enthalten; siehe Tool Calling. |
| tool | Das Ergebnis eines Tool-Aufrufs, den Ihr eigener Code ausgeführt hat, über tool_call_id mit dem Aufruf verknüpft. Siehe Tool Calling. |
Bei einem reinen Text-Turn ist content einfach ein String:
{"role": "user", "content": "İstanbul'da bugün hava nasıl olur sence?"}
Um ein Bild zusammen mit Text einzubinden, wird content statt eines einfachen Strings zu einem Array typisierter Teile; das genaue Format und welche Modelle es akzeptieren finden Sie unter Bilder.
Response (ohne Streaming)
Mit "stream": false (dem Standardwert) ist die Antwort ein einzelnes JSON-Objekt, zurückgegeben, sobald die Generierung abgeschlossen ist:
{
"id": "chatcmpl-817c002145ac47feb83a0006c58ff43b",
"object": "chat.completion",
"created": 1788961617,
"model": "tai-4.1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Merhaba! Ben tAI, size nasıl yardımcı olabilirim?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1303,
"completion_tokens": 232,
"total_tokens": 1535
}
}
| Feld | Beschreibung |
|---|---|
| id | Ein eindeutiger Bezeichner für diese Completion, mit dem Präfix chatcmpl-. |
| choices | Immer genau ein Eintrag (Index 0). tAI unterstützt es nicht, mehrere Kandidaten-Completions in einer einzigen Anfrage anzufordern. |
| choices[].finish_reason | "stop" für eine normal abgeschlossene Antwort, oder "tool_calls", wenn das Modell darum bittet, ein oder mehrere Tools aufzurufen, statt direkt zu antworten. Siehe Tool Calling. |
| usage | Token-Zahlen für diese Anfrage. completion_tokens spiegelt wider, was das Modell tatsächlich generiert hat, unabhängig von einer eventuellen Obergrenze im Stil von max_tokens. |
Eine vollständige Unterhaltung
Senden Sie bei jeder Anfrage den gesamten Verlauf mit; die API ist zustandslos und behält von sich aus keine Erinnerung an frühere Aufrufe. Jede Anfrage steht für sich, mit genau dem Kontext, den Sie mitsenden.
{
"model": "tai-4.1",
"messages": [
{"role": "system", "content": "Kısa ve net cevaplar ver."},
{"role": "user", "content": "3 çarpı 4 kaç eder?"},
{"role": "assistant", "content": "12."},
{"role": "user", "content": "Peki onu 2'ye böl."}
]
}
Antwortlänge
Derzeit gibt es keine clientseitig einstellbare Obergrenze dafür, wie viele Tokens eine Antwort enthalten kann; jedes Modell hat seine eigene interne, für dieses Modell abgestimmte Obergrenze. Wenn eine Anfrage schnell fehlschlagen soll, statt lang zu laufen, ist der zuverlässigste Hebel stop-Sequenzen (siehe Sampling-Parameter) oder einfach im Prompt selbst um Kürze zu bitten.