Vai al contenuto principale
Due percorsi:
  • response_format: {"type": "json_object"} — il modello restituisce JSON valido
  • response_format: {"type": "json_schema", "json_schema": {...}} — l’output del modello rispetta il tuo schema

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

Supporto cross-provider

response_format è supportato ovunque il modello upstream possa onorarlo. Per Gemini, il livello di traduzione di OrcaRouter lo mappa a responseMimeType + responseSchema. Per OpenAI / Grok / DeepSeek (tutti upstream OpenAI-compatibili), il campo raggiunge l’upstream nella sua forma nativa. Anthropic non espone un equivalente di response_format, quindi usa il pattern tool_use di Anthropic quando hai bisogno di output vincolato a uno schema lì.
Providerjson_objectjson_schemaNote
OpenAIForma di campo nativa di OpenAI
Grok (xAI)xAI è OpenAI-compatibile
DeepSeek⚠️Verifica il supporto per modello di DeepSeek
GeminiTradotto in responseMimeType + responseSchema
AnthropicUsa il pattern tool_use invece

Vedi anche