Skip to main content
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.
Dieser Endpoint befindet sich in der Beta und steht allen API-Nutzern zur Verfügung. OpenAI-Modelle werden nativ bedient und verhalten sich daher wie die Responses API von OpenAI selbst. Alle anderen Modelle laufen über eine Übersetzungsschicht mit einigen Lücken. Lies Wie Anfragen verarbeitet werden und Einschränkungen, bevor du darauf aufbaust.

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

Die Antwort enthält ein 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ßer openai-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-120b laufen ü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.
Anfragen an OpenAI-Modelle, die eine Venice-spezifische Funktion nutzen, werden im übersetzten Modus verarbeitet, damit die Funktion weiterhin funktioniert. Dazu gehören die Venice-Websuche (ein 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 in input 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 erfordert strict: true die Angabe additionalProperties: false, und json_object erfordert, dass das Wort “json” irgendwo im Input vorkommt.
  • Function-Tools und tool_choice in der Responses-Form von OpenAI {"type": "function", "name": "..."} sowie parallele Tool-Aufrufe.
  • Clientseitig ausgeführte Tools: custom (Freitext-Eingabe), namespace, tool_search, apply_patch, shell und local_shell mit lokaler Umgebung sowie Computer Use.
  • Reasoning-Zusammenfassungen, standardmäßig aktiviert. Reasoning-Modelle geben bei Reasoning-Items immer encrypted_content zurück. Sende diese Items im nächsten Turn in input zurü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", sowie input_file mit Inline-file_data.
  • Pro-Modelle (*-pro), die automatisch im Pro-Reasoning-Modus von OpenAI laufen.
Der Venice-Systemprompt ist im nativen Modus standardmäßig deaktiviert, sodass deine 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

Setze stream: 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.delta gestreamt, 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:
  • instructions werden als Systemnachricht angewendet.
  • Custom-Tools geben custom_tool_call-Items mit dem rohen input zurü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öhnlicher function_call mit 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, als high gesendet.

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.

Verwandte Themen