openai/o3, servida por Comfy Router desde OpenAI.
Entrada: Texto, Imagen · Salida: Texto
Inicio rápido
Crea una clave en tu espacio de trabajo de Comfy y expórtala comoCOMFY_API_KEY. Los fragmentos de Python y TypeScript usan los SDK de Comfy (pip install comfy-sdk y npm install @comfyorg/sdk); el fragmento de cURL es la misma llamada sobre HTTP directo.
ID del modelo: openai/o3
Endpoint: POST https://api.comfy.org/v2/models/openai/o3
- Esperar el resultado
- Encolar y recoger más tarde
El mismo cuerpo, enviado a
POST https://api.comfy.org/v2/models/openai/o3/requests. Router responde 201 con un request_id en cuanto se admite la ejecución, y el resultado se recopila cuando está listo, desde este proceso o desde otro. Entrega en cola explica el estado, la cancelación y la recopilación.Esquema
Entrada
Entradas de texto, imagen o archivo para el modelo, que se usan para generar una respuesta. Es el único campo de este contrato que Router no puede proporcionar y la única entrada en
required a continuación.Inserta un mensaje de sistema (o de desarrollador) como el primer elemento del contexto del modelo.
Un límite superior para la cantidad de tokens generados en una respuesta, incluidos los tokens de salida visibles y los tokens de razonamiento. En un id de razonamiento, este límite se comparte con los tokens de razonamiento ocultos, así que un valor pequeño puede consumir todo el presupuesto antes de que aparezca cualquier texto visible, y por eso los casos de prueba de humo de razonamiento envían 1024 donde los de chat envían 16.Rango:
1 a …Identificador del modelo de OpenAI. En Comfy Router este campo es OPCIONAL y Router lo completa desde el segmento de ruta
{model}; un null explícito se reemplaza de la misma forma. Se rechaza enviar un valor que no coincida con la ruta.SOLO NIVEL DE RAZONAMIENTO. Configuración para modelos de razonamiento, p. ej.
{"effort": "medium"}. Se reenvía sin cambios; consulta la guía de razonamiento de OpenAI para conocer las claves aceptadas. Un id de nivel de chat lo ignora.Declarado para no rechazar a quien lo envía, pero INERTE en esta superficie: Router lo FIJA en
false antes del envío, porque captura la respuesta del proveedor en lugar de retransmitir un text/event-stream, que no puede decodificar, así que OpenAI facturaría una generación en streaming y nadie la contabilizaría. Ninguna superficie de Comfy sirve el stream: el punto de entrada v1 POST /proxy/openai/v1/responses rechaza stream: true con un 400 y nunca reenvía la solicitud aguas arriba, así que omite el campo o envía false en cualquiera de las dos superficies y lee la respuesta completa como un solo cuerpo JSON.Temperatura de muestreo. SOLO NIVEL DE CHAT: los ids de razonamiento de la serie o (
o1, o1-pro, o3, o4-mini) rechazan este parámetro en OpenAI. Router no lo rechaza para ellos (consulta la nota de este componente sobre por qué ambos niveles comparten un esquema), así que OpenAI responde a una llamada de razonamiento que lo envía con su propio error.Rango: 0 a 2Configuración del formato de salida, p. ej.
{"format": {"type": "json_schema", ...}} para Structured Outputs. Se reenvía sin cambios.Cómo debe seleccionar el modelo qué herramienta usar. Ya sea un modo de cadena o un objeto que nombra una herramienta.
Definiciones de herramientas que el modelo puede llamar. Router no restringe la taxonomía de herramientas; consulta la referencia de la API Responses de OpenAI para conocer las formas aceptadas.
Corte de muestreo de núcleo. SOLO NIVEL DE CHAT, en los mismos términos que
temperature.Rango: 0 a 1Estrategia de truncamiento cuando el contexto supera la ventana del modelo. La enumeración SÍ se aplica aquí, a diferencia de los tres vocabularios anteriores, porque estos dos valores son el conjunto completo que OpenAI documenta y no ha crecido. Aun así se acepta un
null explícito, en los mismos términos que los campos anteriores.Valores posibles: auto, disabledEnvoltorio de uso de tokens. Presente en este contrato porque la operación v1 lo declara en el cuerpo de la solicitud; OpenAI lo rellena en la RESPUESTA, así que quien llama no tiene motivo para enviarlo.
GET /v2/models/openai/o3/openapi.json, el mismo documento con el que valida una llamada antes de que la solicitud llegue al proveedor.
Salida
Inserta un mensaje de sistema (o de desarrollador) como el primer elemento del contexto del modelo.Cuando se usa junto con
previous_response_id, las instrucciones de una respuesta anterior no se transfieren a la siguiente respuesta. Esto facilita el reemplazo de los mensajes de sistema (o de desarrollador) en las nuevas respuestas.Un límite superior para la cantidad de tokens que se pueden generar en una respuesta, incluidos los tokens de salida visibles y los tokens de razonamiento.
Controla la diversidad de la respuesta mediante muestreo por núcleoRango:
0 a 1La estrategia de truncamiento que se usa para la respuesta del modelo.
-
auto: si el contexto de esta respuesta y de las anteriores supera el tamaño de la ventana de contexto del modelo, el modelo truncará la respuesta para ajustarla a la ventana de contexto eliminando elementos de entrada en medio de la conversación. -
disabled(predeterminado): si una respuesta del modelo supera el tamaño de la ventana de contexto de un modelo, la solicitud fallará con un error 400. Valores posibles:auto,disabled
El ID único de la respuesta anterior al modelo. Úsalo para
crear conversaciones de varios turnos. Aprende más sobre
el estado de la conversación.
Solo modelos de la serie oOpciones de configuración para
los modelos de razonamiento.
Controla qué elementos de razonamiento se devuelven al modelo en turnos posteriores, por ejemplo
auto, current_turn o all_turns.Solo modelos de la serie oLimita el esfuerzo de razonamiento de
los modelos de razonamiento.
Los valores admitidos actualmente son
low, medium y high. Reducir
el esfuerzo de razonamiento puede dar como resultado respuestas más rápidas y menos tokens usados
en el razonamiento de una respuesta.Valores posibles: low, medium, highObsoleto: usa
summary en su lugar.Un resumen del razonamiento realizado por el modelo. Esto puede ser
útil para depurar y comprender el proceso de razonamiento del modelo.
Uno de auto, concise o detailed.Valores posibles: auto, concise, detailedUn resumen del razonamiento realizado por el modelo. Esto puede ser
útil para depurar y comprender el proceso de razonamiento del modelo.
Uno de
auto, concise o detailed.Valores posibles: auto, concise, detailedUn objeto que especifica el formato que el modelo debe generar.Configurar
{ "type": "json_schema" } habilita las salidas estructuradas,
que garantizan que el modelo coincida con el esquema JSON que proporciones. Aprende más en la
guía de salidas estructuradas.El formato predeterminado es { "type": "text" } sin opciones adicionales.No recomendado para gpt-4o y modelos más recientes:Configurar { "type": "json_object" } habilita el modo JSON anterior, que
garantiza que el mensaje que genera el modelo sea JSON válido. Usar json_schema
es preferible en los modelos que lo admiten.Cómo debe seleccionar el modelo qué herramienta (o herramientas) usar al generar
una respuesta. Consulta el parámetro
tools para ver cómo especificar qué herramientas
puede llamar el modelo.Marca de tiempo Unix (en segundos) de cuándo se completó esta respuesta. Solo está presente cuando el estado es
completed.El código de error de la respuesta.Valores posibles:
server_error, rate_limit_exceeded, invalid_prompt, vector_store_timeout, invalid_image, invalid_image_format, invalid_base64_image, invalid_image_url, image_too_large, image_too_small, image_parse_error, image_content_policy_violation, invalid_image_mode, image_file_too_large, unsupported_image_media_type, empty_image_file, failed_to_download_image, image_file_not_foundEl motivo por el que la respuesta está incompleta.Valores posibles:
max_output_tokens, content_filterEl número máximo de llamadas totales a herramientas integradas que se pueden procesar en una respuesta.
Resultados de moderación de la entrada y la salida de la respuesta, si se solicitaron finalizaciones moderadas.
El tipo de objeto de este recurso; siempre se establece en
response.Valores posibles: responseUn arreglo de elementos de contenido generados por el modelo.
- La longitud y el orden de los elementos del arreglo
outputdependen de la respuesta del modelo. - En lugar de acceder al primer elemento del arreglo
outputy suponer que es un mensaje deassistantcon el contenido generado por el modelo, considera usar la propiedadoutput_textdonde los SDK la admitan.
Propiedad de conveniencia exclusiva del SDK que contiene la salida de texto agregada
de todos los elementos
output_text del arreglo output, si hay alguno presente.
Compatible con los SDK de Python y JavaScript.Si se permite que el modelo ejecute llamadas a herramientas en paralelo.
OpenAI la usa para almacenar en caché las respuestas a solicitudes similares y optimizar la tasa de aciertos de la caché. Reemplaza el campo
user.Un identificador estable que ayuda a detectar a los usuarios de tu aplicación que podrían estar infringiendo las políticas de uso de OpenAI.
El nivel de procesamiento usado para atender la solicitud, por ejemplo
auto, default, flex, scale o priority.El estado de la generación de la respuesta. Uno de
completed, failed, in_progress, cancelled, queued o incomplete.Valores posibles: completed, failed, in_progress, cancelled, queued, incompleteEl número máximo de tokens más probables que se devuelven en cada posición de token, cada uno con su probabilidad logarítmica asociada.
Representa los detalles de uso de tokens, incluidos los tokens de entrada, los tokens de salida,
un desglose de los tokens de salida y el total de tokens usados.
Las escrituras en caché desglosadas por vida útil de la caché. Los dos recuentos suman
cache_write_tokens.La cantidad de tokens recuperados de la caché.
Más información sobre el almacenamiento en caché de prompts.
Identificador obsoleto para el usuario final. Reemplazado por
safety_identifier y prompt_cache_key.Ejemplos
Entrada
Salida
Antes de lanzar
Los SDK crean unaIdempotency-Key y la reutilizan para los reintentos automáticos. Para los reintentos manuales, reutiliza la clave original. Router puede mantener la conexión abierta hasta 10 minutos.
Cuando una solicitud falla, Router envía un encabezado de respuesta X-Comfy-Error-Type que explica el motivo. Un 422 significa que Router rechazó la entrada antes de llamar al proveedor, y un 413 significa que el cuerpo de la solicitud era más grande de lo que Router acepta. Descarga los recursos generados de inmediato, porque las URL de resultados pueden caducar.
Cualquier límite de tamaño mencionado en la descripción de un campo más arriba es el límite propio del proveedor para ese campo, citado de la especificación del proveedor. Router aplica un tope aparte al cuerpo completo de la solicitud, con el que cuentan los medios codificados en base64: consulta tamaño del cuerpo de la solicitud.
Esta página documenta un modelo socio al que se llama a través de Comfy Router. El mismo paquete comfy-sdk / @comfyorg/sdk también incluye un segundo cliente, para ejecutar todo un gráfico de flujo de trabajo de ComfyUI en Comfy Cloud: Comfy(api_key=...) / new Comfy({ apiKey }), con client.workflows, client.assets y client.jobs. Consulta SDK de Comfy.
Encabezados
Autenticación, idempotencia, IDs de solicitud, agrupaciones de errores, ritmo de reintentos y límites de gasto.
Uso de la API de Router
Descubrimiento de modelos, errores de validación, reintentos y facturación.
Limitaciones
Lo que Router no hace hoy y qué usar en su lugar.