AI: Structured Output

Structured Output (Структурированный вывод) — это инструмент взаимодействия с LLM, гарантирующий, что ответ будет возвращен в строгом, заранее определенном и машиночитаемом формате (обычно это JSON).


Как это работает

Работает как API на уровне инференса. Использует технологию Constrained Decoding (Ограниченное декодирование).
    Когда вы передаете в API свою JSON-схему, движок модели строит FSM или использует формальную грамматику.
    На каждом шаге генерации алгоритм проверяет вероятности следующих токенов:
    Вычисляет все возможные следующие токены.
    Отбрасывает те токены, которые нарушают синтаксис JSON или заданную схему.
    Модель выбирает токен только из списка «разрешенных».


Сравнение с промптингом

Характеристика
Промптинг
Structured Output API
Способ запроса
Текстовая инструкция в system prompt («выведи JSON»).
Передача JSON Schema в параметр API (напр., response_format).
Надежность
Низкая. Модель может добавить текст до или после JSON.
Абсолютная. Модель генерирует только валидный JSON.
Соблюдение типов
Может ошибиться (вернуть строку "10" вместо числа 10).
Строгое соблюдение типов из схемы.
Галлюцинации ключей
Может придумать лишние ключи или забыть нужные.
Генерирует строго по ключам, описанным в схеме.


Best Practices

  • Используйте поля description: Из них модель понимает, что именно нужно положить в это поле. Пишите их максимально четко.
  • Keep it Simple: Не создавайте схемы с вложенностью в 10 уровней. Чем сложнее структура, тем тяжелее модели распределять attention между логикой ответа и соблюдением схемы.
  • Совмещайте с SGR: Если задача сложная (требует логики), используйте  📑AI: SGR  .