OpenAI-kompatibler Chat-Completions-Proxy. Beide Pfade nutzen denselben Handler und zielen immer auf den Standard-KI-Provider. Nur POST ist erlaubt.
Senden Sie einen OpenAI-artigen JSON-Body.
| REQUEST-Feld | Werttyp | Beschreibung |
|---|---|---|
messages | array | Chat-Nachrichten mit Rollen wie system, user, assistant und tool. |
stream | boolean | Bei true wird die Antwort als SSE text/event-stream gestreamt. |
tool_choice | string | Bei required wird die Tool-Ausführung erzwungen. |
tools | array | Client-Tools werden nicht an den Upstream-Provider weitergereicht. Fehlt die Liste oder ist sie leer, bleiben alle Server-Tools verfügbar. Enthält die Liste das Tool connection_test, wird nur dieses Server-Tool verwendet. |
timeout_ms | number | Timeout in Millisekunden. Standard: 120000. |
Nicht gestreamte Antworten folgen dem OpenAI-chat.completion-Format mit Feldern wie id, object, created, model und choices. Streaming sendet Chunk-Events und endet mit data: [DONE]. Zusätzliche SSE-Events können Tool-Fortschritt melden.
Zeigt eine benutzerdefinierte Standard-Provider-URL zurück auf diesen Proxy-Endpunkt, liefert die Anfrage 409 Conflict. Fehlt der Standard-Provider, liefert die Anfrage 404. Timeout liefert 504. Provider-Fehler liefern 502. Falsche Methoden liefern 405.
# Request POST /api/ai/chat/completions HTTP/1.1 Host: helpdesk.example.com Authorization: Bearer <access_token> Content-Type: application/json { "messages": [ { "role": "user", "content": "Hello" } ], "stream": false, "timeout_ms": 120000 } # Response HTTP/1.1 200 OK Content-Type: application/json { "id": "chatcmpl-example", "object": "chat.completion", "created": 1710000000, "model": "inet-ai-proxy", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello! How can I help?" }, "finish_reason": "stop" } ] }
Hinweis: POST /api/ai/v1/chat/completions verhält sich identisch zu POST /api/ai/chat/completions.