Saltar para o conteúdo principal
Dois caminhos:
  • response_format: {"type": "json_object"} — o modelo retorna JSON válido
  • response_format: {"type": "json_schema", "json_schema": {...}} — a saída do modelo está em conformidade com seu schema

Exemplo (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"],
            },
        },
    },
)

Suporte entre provedores

response_format é suportado onde o modelo upstream pode honrá-lo. Para Gemini, a camada de tradução do OrcaRouter o mapeia para responseMimeType + responseSchema. Para OpenAI / Grok / DeepSeek (todos upstreams compatíveis com OpenAI), o campo chega ao upstream em seu formato nativo. A Anthropic não expõe um equivalente de response_format, então use o padrão tool_use da Anthropic quando precisar de saída restrita a schema ali.
Provedorjson_objectjson_schemaNotas
OpenAIFormato de campo nativo da OpenAI
Grok (xAI)xAI é compatível com OpenAI
DeepSeek⚠️Verifique suporte por modelo do DeepSeek
GeminiTraduzido para responseMimeType + responseSchema
AnthropicUse o padrão tool_use em vez disso

Veja também