Übersicht
GoModel stellt OpenAI-kompatible Endpunkte der Conversations API unter/v1/conversations bereit.
Konversationen sind eine vom Gateway verwaltete Ressource. Die OpenAI Conversations API ist
Provider-spezifisch, daher erzeugt GoModel die Konversations-ID und speichert die Konversation
selbst. So bleibt /v1/conversations verfügbar und konsistent, unabhängig davon, über welchen
Provider Ihr Modell-Traffic geroutet wird, und es ist keine Provider-Konfiguration erforderlich.
Unterstützte Endpunkte
Konversationsobjekt
metadata ist immer vorhanden und wird als {} serialisiert, wenn es leer ist.
Limits
GoModel setzt die Limits der OpenAI Conversations API durch, damit der öffentliche Vertrag kompatibel bleibt:items– höchstens 20 Einträge beim Erstellen.metadata– höchstens 16 Schlüssel-Wert-Paare; Keys bis zu 64 Zeichen; Werte bis zu 512 Zeichen.
order=desc), mit 20 Items pro
Seite. Verwenden Sie die zurückgegebene last_id als after-Cursor des nächsten Requests. limit
akzeptiert bis zu 100 Items. Der optionale Parameter include akzeptiert dieselben Werte wie die
OpenAI Conversations API, darunter reasoning.encrypted_content und
message.output_text.logprobs. GoModel speichert vollständige Item-Payloads, sodass optionale
Felder für spätere Requests verfügbar bleiben, während nur die in include genannten Felder
zurückgegeben werden.
Speicherung und Aufbewahrung
Die reguläre GoModel-Anwendung speichert Konversationen im konfigurierten gemeinsamen Speicher-Backend (sqlite, postgresql oder mongodb), sodass sie Neustarts des Prozesses
überdauern. Konversations-Snapshots laufen nach 30 Tagen ab.
Ein In-Memory-Fallback wird nur verwendet, wenn der HTTP-Server ohne Speicherkonfiguration der
Anwendung eingebettet wird, etwa in schlanken Tests. Auch dieser Fallback lässt Einträge nach
30 Tagen ablaufen und hält höchstens 10.000 Konversationen vor, wobei die ältesten zuerst entfernt
werden.
Fehler
GoModel gibt OpenAI-kompatible Fehler zurück:400 invalid_request_error– ungültiger Body, fehlendesmetadatabeim Update, ein ungültiges Item oder ein überschrittenes Limit (das Feldparamnennt das betroffene Feld).404 not_found_error– die Konversation oder das angeforderte Item existiert nicht.404 invalid_request_errormitparam: "after"– der Paginierungs-Cursor bezeichnet kein Item in der Konversation.
/v1/responses-Turns. Wenn der
Provider erfolgreich antwortet, der abgeschlossene Austausch aber nicht gespeichert werden kann,
liefert ein Request ohne Streaming 500; ein Streaming-Request endet, ohne
response.completed auszugeben. GoModel dedupliziert derzeit keinen Client-Retry dieses
fehlgeschlagenen Requests, sodass ein erneuter Versuch den Provider erneut aufrufen und erneut
Kosten verursachen kann. Der fehlgeschlagene Austausch fehlt im Konversationsverlauf, daher lässt
sich anhand des Verlaufs nicht zuverlässig feststellen, ob der Provider-Aufruf bereits ausgeführt
wurde. Vermeiden Sie automatische Retries oder koordinieren Sie sie über einen unabhängigen,
dauerhaften Idempotenzmechanismus, wenn doppelte Aufrufe erhebliche Kosten oder Nebenwirkungen
haben.