Saltar al contenido principal
Dos caminos:
  • response_format: {"type": "json_object"} — el modelo devuelve JSON válido
  • response_format: {"type": "json_schema", "json_schema": {...}} — la salida del modelo se ajusta a tu esquema

Ejemplo (json_schema, OpenAI)

resp = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Extract name and age."}],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "person",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "age": {"type": "integer"},
                },
                "required": ["name", "age"],
            },
        },
    },
)

Soporte entre proveedores

response_format está soportado dondequiera que el modelo upstream pueda honrarlo. Para Gemini, la capa de traducción de OrcaRouter lo mapea a responseMimeType + responseSchema. Para OpenAI / Grok / DeepSeek (todos upstreams compatibles con OpenAI), el campo llega al upstream en su forma nativa. Anthropic no expone un equivalente a response_format, así que usa el patrón tool_use de Anthropic cuando necesites salida restringida por esquema allí.
Proveedorjson_objectjson_schemaNotas
OpenAIForma nativa de campo OpenAI
Grok (xAI)xAI es compatible con OpenAI
DeepSeek⚠️Verifica el soporte por modelo de DeepSeek
GeminiTraducido a responseMimeType + responseSchema
AnthropicUsa el patrón tool_use en su lugar

Véase también