Почему «строго в JSON» — не всегда просто просьба
Если написать модели «верни результат в JSON», она постарается, но всё ещё может пропустить кавычку или добавить лишнее поле. В системах со структурированным выводом работает другой механизм — constrained decoding, ограниченное декодирование.
На каждом шаге генератору разрешают выбирать только те токены, которые не нарушают заданную схему. Если поле «сумма» должно быть числом, а «валюта» — одним из заранее допустимых вариантов, несовместимое продолжение просто исключается.
Это делает форму ответа надёжнее для программ и автоматизаций. Но рамка проверяет упаковку, а не правду внутри: корректный JSON всё ещё может содержать неверный факт.