Passer au contenu principal
Deux chemins :
  • response_format: {"type": "json_object"} — le modèle retourne du JSON valide
  • response_format: {"type": "json_schema", "json_schema": {...}} — la sortie du modèle est conforme à votre schéma

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

Support inter-fournisseurs

response_format est pris en charge partout où le modèle amont peut l’honorer. Pour Gemini, la couche de traduction d’OrcaRouter le mappe à responseMimeType + responseSchema. Pour OpenAI / Grok / DeepSeek (tous des amonts compatibles OpenAI), le champ atteint l’amont dans sa forme native. Anthropic n’expose pas d’équivalent response_format, donc utilisez le motif tool_use d’Anthropic quand vous avez besoin de sortie contrainte par schéma là-bas.
Fournisseurjson_objectjson_schemaNotes
OpenAIForme de champ native OpenAI
Grok (xAI)xAI est compatible OpenAI
DeepSeek⚠️Vérifiez le support par modèle de DeepSeek
GeminiTraduit en responseMimeType + responseSchema
AnthropicUtilisez le motif tool_use à la place

Voir aussi