Przejdź do głównej treści
Dwie ścieżki:
  • response_format: {"type": "json_object"} — model zwraca poprawny JSON
  • response_format: {"type": "json_schema", "json_schema": {...}} — wyjście modelu jest zgodne z Twoim schematem

Przykład (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"],
            },
        },
    },
)

Wsparcie między dostawcami

response_format jest obsługiwane wszędzie tam, gdzie upstreamowy model może je honorować. Dla Gemini warstwa tłumacząca OrcaRouter mapuje je na responseMimeType + responseSchema. Dla OpenAI / Grok / DeepSeek (wszystkie upstreamy zgodne z OpenAI) pole dociera do upstreamu w natywnym kształcie. Anthropic nie udostępnia odpowiednika response_format, więc użyj wzorca tool_use Anthropic, gdy potrzebujesz tam wyjścia ograniczonego schematem.
Dostawcajson_objectjson_schemaUwagi
OpenAINatywny kształt pola OpenAI
Grok (xAI)xAI jest zgodne z OpenAI
DeepSeek⚠️Sprawdź wsparcie per-model DeepSeek
GeminiTłumaczone na responseMimeType + responseSchema
AnthropicUżyj wzorca tool_use

Zobacz także