POST /responses akzeptiert Anfragen im Responses-API-Format von OpenAI und gibt typisierte Ausgabe-Items wie reasoning, message und function_call zurück. Der Endpoint funktioniert mit jedem Venice-Textmodell und akzeptiert einen API-Schlüssel oder x402-Wallet-Authentifizierung.
Wann du ihn verwenden solltest
Verwende/responses, wenn dein Client bereits das Responses-Format spricht, zum Beispiel Coding-Agents und SDKs, die auf responses.create von OpenAI aufbauen. Es ist der beste Weg, Agents im Codex-Stil mit OpenAI-Modellen über Venice zu betreiben.
Für Nicht-OpenAI-Modelle ist /chat/completions weiterhin die vollständigste Option: Der Endpoint unterstützt Structured Outputs, Dateieingaben, E2EE-Modelle und jede venice_parameters-Option bei jedem Modell.
Schnellstart
output-Array mit typisierten Items und ein usage-Objekt:
Wie Anfragen verarbeitet werden
Venice verarbeitet jede Anfrage in einem von zwei Modi.- Nativ. Anfragen für OpenAI-Modelle werden ohne Übersetzung an die Responses API von OpenAI weitergeleitet. Das betrifft jedes
openai-*-Modell außeropenai-gpt-oss-120b. Antwort-Items, IDs, Reasoning und Stream-Events kommen genau so zurück, wie OpenAI sie liefert. - Übersetzt. Alle anderen Modelle sowie
openai-gpt-oss-120blaufen über eine Übersetzungsschicht: Venice wandelt die Anfrage in eine Chat-Completions-Anfrage um, führt sie aus und wandelt das Ergebnis zurück. Alles, was das Chat-Completions-Format nicht ausdrücken kann, wird ignoriert oder abgelehnt. Siehe Einschränkungen.
web_search-Tool, web_search: true oder venice_parameters.enable_web_search), x_search, venice_parameters.character_slug und venice_parameters.enable_web_scraping. Anfragen mit Feldern, die der native Modus nicht bedienen kann (aufgeführt unter Nativer Modus), fallen auf dieselbe Weise zurück.
Du kannst den Modus über Header steuern und prüfen:
Konversationen sind zustandslos
Venice speichert in keinem der beiden Modi Antworten. Sende bei jeder Anfrage die gesamte Konversation ininput und hänge dabei die vorherigen output-Items sowie alle Tool-Ergebnisse an.
store wird immer als false behandelt. previous_response_id und conversation können nicht aufgelöst werden, da nichts gespeichert wird. Im Standardmodus auto werden solche Anfragen im übersetzten Modus verarbeitet, in dem diese Felder ignoriert werden. Mit x-venice-responses-mode: native geben sie 400 zurück.
Nativer Modus
Der native Modus unterstützt die Responses-Funktionen, die auch der Endpoint von OpenAI selbst bietet, darunter:instructions, die unverändert angewendet werden.- Structured Outputs mit
text.format. OpenAI validiert Schemas strikt, daher gibt ein ungültiges Schema 400 zurück. Zum Beispiel erfordertstrict: truedie AngabeadditionalProperties: false, undjson_objecterfordert, dass das Wort “json” irgendwo im Input vorkommt. - Function-Tools und
tool_choicein der Responses-Form von OpenAI{"type": "function", "name": "..."}sowie parallele Tool-Aufrufe. - Clientseitig ausgeführte Tools:
custom(Freitext-Eingabe),namespace,tool_search,apply_patch,shellundlocal_shellmit lokaler Umgebung sowie Computer Use. - Reasoning-Zusammenfassungen, standardmäßig aktiviert. Reasoning-Modelle geben bei Reasoning-Items immer
encrypted_contentzurück. Sende diese Items im nächsten Turn ininputzurück, um den Reasoning-Kontext des Modells zu erhalten. - Prompt Caching mit
prompt_cache_key. Venice ordnet den Schlüssel deinem Konto zu, sodass nie ein Cache mit anderen Nutzern geteilt wird, und gibt deinen ursprünglichen Schlüssel in der Antwort zurück. - Bildeingaben, einschließlich
detail: "original", sowieinput_filemit Inline-file_data. - Pro-Modelle (
*-pro), die automatisch im Pro-Reasoning-Modus von OpenAI laufen.
instructions unverändert gelten. Setze venice_parameters.include_venice_system_prompt: true, um ihn hinzuzufügen.
Folgende Funktionen benötigen serverseitigen Speicher oder vom Anbieter gehostete Ressourcen und sind daher nativ nicht verfügbar:
Diese Einschränkungen gelten auch für Tools, die später in der Konversation über
additional_tools- oder tool_search_output-Items geladen werden. Ein dort deklariertes Venice-Such-Tool leitet die Anfrage ebenfalls in den übersetzten Modus.
Nicht erkannte Anfragefelder werden genauso behandelt: Mit auto wird die Anfrage im übersetzten Modus verarbeitet, mit native gibt sie 400 zurück.
Streaming
Setzestream: true, um Server-Sent Events zu empfangen. Beide Modi beenden den Stream mit data: [DONE].
Im nativen Modus entsprechen die Events exakt denen von OpenAI, einschließlich response.reasoning_summary_text.delta für Reasoning-Zusammenfassungen und response.function_call_arguments.delta für Tool-Argumente.
Im übersetzten Modus lauten die Events response.created, response.output_item.added, response.content_part.added, response.output_text.delta, response.function_call_arguments.delta, response.content_part.done, response.output_item.done und abschließend response.completed, response.incomplete oder response.failed. Zwei Events weichen von denen von OpenAI ab:
- Reasoning-Text wird als
response.reasoning.deltagestreamt, nicht als Reasoning-Summary-Events von OpenAI. - Wenn eine Websuche läuft, liefert ein
response.web_search.done-Event die Suchergebnisse, bevor die Antwort gestreamt wird.
Parameter im übersetzten Modus
Die Websuche wird wie bei
/chat/completions als Search Augmentation abgerechnet.
Einige Verhaltensweisen des übersetzten Modus, die du einplanen solltest:
instructionswerden als Systemnachricht angewendet.- Custom-Tools geben
custom_tool_call-Items mit dem roheninputzurück. Wenn ein Modell fehlerhafte Custom-Tool-Argumente zurückgibt oder ein Tool aufruft, das in der Anfrage nicht deklariert ist, kommt der Aufruf als gewöhnlicherfunction_callmit den ursprünglichen Argumenten zurück, sodass dein Client einen Tool-Fehler melden und fortfahren kann. - Während die Eingabe eines Custom-Tools gestreamt wird, können sein Aufruf-Item und nachfolgende Items erst eintreffen, wenn die Eingabe vollständig ist. Der Stream sendet währenddessen SSE-Keep-alive-Kommentare.
- Bild-
detail: "original"wird an Anbieter, die es nicht unterstützen, alshighgesendet.
Einschränkungen
Diese Lücken betreffen den übersetzten Modus: jedes Nicht-OpenAI-Modell,openai-gpt-oss-120b und Anfragen an OpenAI-Modelle, die Venice-spezifische Funktionen nutzen. Sofern nicht anders angegeben, ist die Anfrage trotzdem erfolgreich und das Feld wird ignoriert.