Enviar un prompt simple
Pasa una cadena eninput para una solicitud de un solo turno.
La respuesta incluye el texto generado en output_text.
Si un guardrail bloquea la solicitud, output_text no aparece y la salida contiene un rechazo; consulta Guardrails.
X-On-Behalf-Of.
Agregar instrucciones
Utilizainstructions para definir el comportamiento antes de que el modelo vea la entrada del usuario.
Mantén las instrucciones cortas y específicas.
Enviar mensajes estructurados
Utiliza un arreglo de elementos de mensaje eninput cuando quieras roles explícitos.
Cada elemento de mensaje utiliza type, role y content.
Continuar un intercambio de varios turnos
Utilizaprevious_response_id para continuar desde una respuesta anterior sin reenviar todo el historial.
conversation.
Transmitir texto a medida que se genera
Establecestream en true para recibir eventos enviados por el servidor en lugar de esperar la respuesta completa.
Ajustar el muestreo y la longitud
Los campos de muestreo cambian cómo elige el modelo cada token. Los campos de longitud limitan cuánto escribe. Todos son opcionales y van en el nivel superior de la solicitud, junto amodel e input.
400. En el ejemplo, revisa status: si el modelo llegó al límite de 400 tokens, la respuesta es incomplete en lugar de completed, y usage.output_tokens queda en el límite o por debajo. Algunos campos de la tabla son extensiones del gateway. No forman parte de la API Responses de OpenAI, y que lleguen al modelo depende de su upstream, la API del proveedor a la que el gateway reenvía tu solicitud, que usa el formato Responses o el formato Completions.
Los campos marcados como extensiones del gateway no forman parte de la API Responses de OpenAI, así que los tipos del SDK de OpenAI no los conocen. Envíalos con el SDK de MKA1, la CLI o HTTP directo.
Otras cuatro extensiones del gateway pasan opciones del proveedor sin cambios:
chat_template_kwargs (por ejemplo {"enable_thinking": false}), prefill_think (un booleano o un texto de prellenado), use_cache y extra_body, un objeto que se combina con la solicitud upstream después de que el gateway elimina de él cualquier clave de autenticación, de URL base o de encabezados.
No todos los campos llegan a todos los modelos. Campos que descarta el gateway enumera los casos.
Comprobar qué admite un modelo
No todos los modelos aceptan todos los campos.GET /api/v1/llm/models/{model_id} devuelve un objeto capabilities con cuatro booleanos:
Los modelos que no son LLM (embeddings, imágenes, voz) indican
false en los cuatro. El objeto del modelo también incluye input_modalities y output_modalities, los tipos de contenido que el modelo acepta y produce, como ["text", "image"].
false para él, el gateway no rechaza la solicitud. Descarta ese campo antes de llamar al modelo, reenvía todo lo demás y el modelo usa su propio valor predeterminado para ese ajuste. Nada en la respuesta indica que el campo se descartó: devuelve temperature, top_p y reasoning tal como los enviaste. Comprueba primero las capacidades del modelo cuando el ajuste importe.
Controlar el razonamiento
Los modelos de razonamiento piensan antes de responder. El objetoreasoning define cuánto razonamiento quieres y si lo ves:
effort:none,minimal,low,medium,highoxhigh.summary:auto,conciseodetailed. Pide al modelo que devuelva un resumen legible de su razonamiento.
null la que no uses. {"effort": "low"} por sí solo no pasa la validación.
Cada clave llega al modelo solo cuando el modelo puede usarla:
effortsolo se envía a modelos que indicansupports_reasoning_effort: true. Un upstream con formato Completions lo recibe comoreasoning_effort.summarysolo se envía a modelos que indicansupports_reasoning: truey cuyo upstream usa el formato Responses.
ReasoningEffort del SDK de OpenAI no incluye none ni xhigh; envía esos valores con el SDK de MKA1, la CLI o HTTP directo.
El razonamiento aparece en tres lugares:
outputpuede contener un elemento contype: "reasoning". Su arreglosummarycontiene partessummary_text, ycontent(cuando existe) contiene las partesreasoning_textsin procesar. Agrega"reasoning.encrypted_content"aincludepara obtener tambiénencrypted_content.usage.output_tokens_details.reasoning_tokenses la parte deoutput_tokensque el modelo dedicó a razonar. Los tokens de razonamiento son tokens de salida, así que cuentan paramax_output_tokens.- En un stream, los eventos
response.reasoning_text.deltayresponse.reasoning_summary_text.deltasuelen llegar antes que los eventosresponse.output_text.delta. La prueba de rendimiento de latencia de salida en streaming muestra este orden en un modelo real.
effort, lee supports_reasoning y supports_reasoning_effort como se muestra en Comprobar qué admite un modelo. Después de la llamada, usage.output_tokens_details.reasoning_tokens muestra cuánto razonamiento hubo.
Cuando envías model: "auto", el gateway aplica la política auto de la organización para Responses. La política predeterminada es un alias directo del registro de modelos. Un administrador de la organización puede configurar una política equilibrada que pide a un LLM juez elegir entre los modelos aptos según capacidad, precio, latencia del gateway, evaluaciones comparables, requisitos de la solicitud y continuidad de la conversación. El enrutamiento no cambia el reasoning.effort que envías, pero el gateway lo descarta igualmente cuando el modelo elegido indica supports_reasoning_effort: false. Enrutamiento automático explica la política y su comportamiento ante fallos y en materia de privacidad.
Campos que descarta el gateway
Cada campo de abajo pasa la validación, pero el gateway lo descarta antes de llamar al modelo en el caso indicado. Un campo descartado nunca hace fallar la solicitud, y nada en la respuesta indica que se descartó. Algunos casos dependen del upstream del modelo, la API del proveedor a la que el gateway reenvía tu solicitud.
Como los campos desconocidos se eliminan en silencio, un nombre de campo mal escrito parece aceptado pero no tiene efecto. Si un ajuste parece no hacer nada, compara tu solicitud con la referencia de la API.
Pausar una respuesta en segundo plano
Una respuesta en segundo plano puede llamar a la herramientasleep para esperar hasta 20 minutos un webhook o un trabajo externo, y puedes despertarla antes con una entrada de seguimiento. Consulta respuestas en segundo plano.
Próximos pasos
- Revisa la visión general de la API para detalles de autenticación y URL base
- Consulta respuestas en segundo plano cuando necesites delegar trabajos de larga duración y hacer polling o streaming para obtener resultados
- Consulta gestionar conversaciones para organizar intercambios de varios turnos en contenedores de conversación reutilizables
- Consulta gestionar agentes cuando necesites definiciones de agente reutilizables y ejecuciones persistentes
- Consulta la latencia de salida en streaming para ver el tiempo medido hasta el primer token transmitido en la API Responses