altrouter.ai
ОСНОВНОЕ

Структурированный вывод

Заставьте модель вернуть валидный JSON — свободной формы или строго по вашей JSON-схеме — через параметр response_format.

JSON-режим

Передайте { "type": "json_object" }, чтобы ответ гарантированно был синтаксически валидным JSON.

PythonJSON
resp = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "List 3 primes as JSON"}],
    response_format={"type": "json_object"},
)
print(resp.choices[0].message.content)   # -> {"primes": [2, 3, 5]}

JSON-схема

Для строгой типизации передайте JSON-схему — модель вернёт объект точно по ней.

PythonJSON
resp = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": "Give a person"}],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "person",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "age": {"type": "integer"},
                },
                "required": ["name", "age"],
                "additionalProperties": False,
            },
        },
    },
)
print(resp.choices[0].message.content)   # -> {"name": "Alex", "age": 30}

Поддержка по моделям

!
response_format поддерживают модели Gemini и GPT. Модели Claude нативного JSON-режима не имеют — для строгого JSON у них используйте function calling (tools) с одной функцией-схемой.

Какие модели что поддерживают — в разделе Параметры.

ДалееИзображения