Skip to main content
POST /responses acepta solicitudes en el formato Responses API de OpenAI y devuelve elementos de salida tipados como reasoning, message y function_call. Funciona con todos los modelos de texto de Venice y acepta una API key o autenticación con billetera x402.
Este endpoint está en beta y disponible para todos los usuarios de la API. Los modelos de OpenAI se sirven de forma nativa, por lo que se comportan como la propia Responses API de OpenAI. Todos los demás modelos pasan por una capa de traducción con algunas carencias. Lee Procesamiento de las solicitudes y Limitaciones antes de construir sobre él.

Cuándo usarlo

Usa /responses cuando tu cliente ya hable el formato Responses, por ejemplo agentes de programación y SDK construidos sobre responses.create de OpenAI. Es la mejor forma de ejecutar agentes al estilo Codex en modelos de OpenAI a través de Venice. Para modelos que no son de OpenAI, /chat/completions sigue siendo la opción más completa: admite salidas estructuradas, entradas de archivos, modelos E2EE y todas las opciones de venice_parameters en todos los modelos.

Inicio rápido

La respuesta contiene un array output de elementos tipados y un objeto usage:

Procesamiento de las solicitudes

Venice sirve cada solicitud en uno de dos modos.
  • Nativo. Las solicitudes para modelos de OpenAI se reenvían a la Responses API de OpenAI sin traducción. Esto abarca todos los modelos openai-* excepto openai-gpt-oss-120b. Los elementos de respuesta, los ID, el razonamiento y los eventos de streaming se devuelven exactamente como los devuelve OpenAI.
  • Traducido. Todos los demás modelos, además de openai-gpt-oss-120b, pasan por una capa de traducción: Venice convierte la solicitud en una solicitud de Chat Completions, la ejecuta y vuelve a convertir el resultado. Todo lo que el formato Chat Completions no puede expresar se ignora o se rechaza. Consulta Limitaciones.
Las solicitudes a modelos de OpenAI que usan una función exclusiva de Venice se sirven en modo traducido para que la función siga funcionando. Esto incluye la búsqueda web de Venice (una herramienta web_search, web_search: true o venice_parameters.enable_web_search), x_search, venice_parameters.character_slug y venice_parameters.enable_web_scraping. Las solicitudes con campos que el modo nativo no puede servir, enumerados en Modo nativo, recurren al modo traducido de la misma manera. Puedes controlar e inspeccionar el modo con encabezados:

Las conversaciones no tienen estado

Venice no almacena respuestas en ninguno de los dos modos. Envía la conversación completa en input en cada solicitud, añadiendo los elementos output anteriores y cualquier resultado de herramientas.
store siempre se trata como false. previous_response_id y conversation no pueden resolverse porque no se almacena nada. Con el modo auto predeterminado, estas solicitudes se sirven en modo traducido, donde esos campos se ignoran. Con x-venice-responses-mode: native devuelven 400.

Modo nativo

El modo nativo admite las funciones de Responses que admite el propio endpoint de OpenAI, entre ellas:
  • instructions, aplicadas tal como están escritas.
  • Salidas estructuradas con text.format. OpenAI valida los esquemas de forma estricta, por lo que un esquema no válido devuelve 400. Por ejemplo, strict: true requiere additionalProperties: false, y json_object requiere que la palabra “json” aparezca en algún lugar del input.
  • Herramientas de función y tool_choice en la forma de Responses de OpenAI {"type": "function", "name": "..."}, además de llamadas a herramientas en paralelo.
  • Herramientas ejecutadas por el cliente: custom (entrada de formato libre), namespace, tool_search, apply_patch, shell y local_shell con un entorno local, y computer use.
  • Resúmenes de razonamiento, activados por defecto. Los modelos de razonamiento siempre devuelven encrypted_content en los elementos de razonamiento. Devuelve esos elementos en input en el siguiente turno para conservar el contexto de razonamiento del modelo.
  • Caché de prompts con prompt_cache_key. Venice limita la clave a tu cuenta, de modo que nunca comparte una caché con otros usuarios, y devuelve tu clave original en la respuesta.
  • Entradas de imagen, incluido detail: "original", e input_file con file_data en línea.
  • Modelos Pro (*-pro), que ejecutan automáticamente el modo de razonamiento Pro de OpenAI.
El prompt de sistema de Venice está desactivado por defecto en modo nativo, por lo que tus instructions se aplican sin cambios. Establece venice_parameters.include_venice_system_prompt: true para añadirlo. Estas funciones requieren almacenamiento en el servidor o recursos alojados por el proveedor, por lo que no están disponibles de forma nativa: Estas restricciones también se aplican a las herramientas cargadas más adelante en la conversación mediante elementos additional_tools o tool_search_output. Una herramienta de búsqueda de Venice declarada allí también envía la solicitud al modo traducido. Los campos de solicitud no reconocidos se tratan de la misma manera: con auto la solicitud se sirve en modo traducido, y con native devuelve 400.

Streaming

Establece stream: true para recibir server-sent events. Ambos modos terminan el stream con data: [DONE]. En modo nativo, los eventos son exactamente los de OpenAI, incluidos response.reasoning_summary_text.delta para los resúmenes de razonamiento y response.function_call_arguments.delta para los argumentos de las herramientas. En modo traducido, los eventos son 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 y, por último, response.completed, response.incomplete o response.failed. Dos eventos difieren de los de OpenAI:
  • El texto de razonamiento se transmite como response.reasoning.delta, no como los eventos de resumen de razonamiento de OpenAI.
  • Cuando se ejecuta la búsqueda web, un evento response.web_search.done lleva los resultados de búsqueda antes de que se transmita la respuesta.

Parámetros del modo traducido

La búsqueda web se factura como aumento de búsqueda, igual que en /chat/completions. Algunos comportamientos del modo traducido que conviene tener en cuenta:
  • Las instructions se aplican como un mensaje de sistema.
  • Las herramientas personalizadas devuelven elementos custom_tool_call con el input sin procesar. Si un modelo devuelve argumentos mal formados para una herramienta personalizada, o llama a una herramienta que no está declarada en la solicitud, la llamada se devuelve como un function_call normal con los argumentos originales, para que tu cliente pueda informar de un error de herramienta y continuar.
  • Mientras se transmite el input de una herramienta personalizada, su elemento de llamada y los elementos posteriores pueden llegar solo después de que el input esté completo. El stream envía comentarios SSE de keep-alive mientras espera.
  • detail: "original" de las imágenes se envía como high a los proveedores que no lo admiten.

Limitaciones

Estas carencias se aplican al modo traducido: todos los modelos que no son de OpenAI, openai-gpt-oss-120b y las solicitudes a modelos de OpenAI que usan funciones exclusivas de Venice. Salvo que se indique lo contrario, la solicitud se completa igualmente y el campo se ignora.

Relacionado