Короче, оказывается, еще 3 месяца назад OpenAI очень круто прокачали structured output.
Я знаю про сильно увеличенный размер схемы, доп ограничения вроде max/min, но оказывается, они разрешили целые грамматики с нуля прописывать. То есть сгенерировать не просто json, соответствующей pydantic/zod схеме с разными валидаторами, а вообще текст на любом языке, который описывается Context Free грамматикой.
Теоретически, это может быть SQL или python, а может быть даже конкретный диалект SQL или вообще проприетарный DSL (domain specific language), например, игрового движка
Когда прочитал, у меня аж глаза загорелись, но потом пыл поутих, когда я понял, что большая часть идей применения в целом реализуется и через классический structured output + какой-нибудь конвертер в нужный формат.
Но если нужен какой-то сложный формат, который не описать json схемой, то это прям киллер фича. Если есть идеи, кидайте в комменты
Подумал, что это может быть отличным выходом из ситуации, когда новые языки просто перестают появляться, потому что их не было в обучающей выборке и нейронки не умеют генерировать корректный код для них
P.s sql и python не описываются целиком Context Free грамматикой. То есть не получится сделать такую грамматику, которая прям однозначно гарантировала соответствие всем фичам языка, но все равно можно заложить очень много
Дока