Промпт-инжиниринг

Что такое структурированный вывод — как заставить ИИ вернуть JSON

Иллюстрация: текст от модели укладывается в строгую форму

Смотри, в чём боль. Ты просишь модель: «верни имя и возраст». А она отвечает: «Конечно! Имя — Аня, ей 27 лет 😊». Человеку приятно. А твой код этим подавится — он ждал данные, а получил болтовню.

Структурированный вывод чинит ровно это. Он заставляет модель отдать строгий JSON, который программа прочитает без приключений. Разберёмся, как это превращает разговорчивый ИИ в надёжную деталь приложения.

Структурированный вывод — одним предложением

Структурированный вывод (structured output) — это когда модель обязана ответить в заданном формате, обычно в JSON по твоей схеме.

Не «как получится», а строго: вот поля, вот их типы. {"name": "Аня", "age": 27} — и ни слова лишнего.

Такой ответ код читает напрямую. Никаких «вырежи имя из предложения регуляркой и помолись».

Почему «верни JSON» в промпте — ненадёжно

Самый частый приём новичка: написать в промпте «ответь в формате JSON». Иногда работает. А иногда нет.

Модель то добавит «Вот ваш JSON:» перед скобкой. То обернёт ответ в ```. То поставит запятую не там. На сотом запросе один сломается — и твоё приложение упадёт.

Беда в том, что вежливая просьба в промпте — это надежда, а не гарантия. Модель старается, но иногда забывает. А приложению нужно, чтобы работало всегда, а не «обычно».

Как заставить модель держать формат

Тут на помощь приходят возможности самих API. Ты не просишь — ты задаёшь правила, и модель не может из них выйти.

  • JSON mode / structured outputs. У ведущих провайдеров (OpenAI, Google, Anthropic) есть режим, где ты прикладываешь схему — список полей и их типы. Модель технически обязана ответить строго по ней. Не свободный текст, а валидный JSON.
  • Через tool use. Это близкий механизм: ты описываешь «инструмент» с нужными аргументами, и модель заполняет их — а аргументы и есть твоя структура.

Что искать в документации: «structured outputs», «JSON mode», «response schema» или «function calling». Названия у всех разные, идея одна — формат задаёшь ты, а не надеешься на модель.

Зачем это тебе (реальные фичи)

Структурированный вывод — это мостик между «поболтать с ИИ» и «встроить ИИ в приложение». Вот что на нём собирают:

  • Достать из письма дату, сумму и имя отправителя — сразу в поля.
  • Разложить отзыв на оценку, тему и тональность.
  • Превратить фразу «встреча с Аней в пятницу в 15:00» в готовое событие календаря.
  • Раскидать пачку заметок по категориям.

Во всех случаях ответ модели сразу уходит в код или базу. Не нужно подключать парсер-костыль и латать его на каждом кривом ответе.

Это то же, что function calling или tool use?

Очень близко. И tool use, и structured output про одно: модель отдаёт данные в строгой форме, а не свободным текстом. Часто структурированный вывод как раз и делают «под капотом» через механизм инструментов. Разница больше в том, как это назвал конкретный провайдер.

Если формат строгий — модель не ошибётся в данных?

Осторожно: формат и правда — разные вещи. Структурированный вывод гарантирует, что JSON будет валидным и с нужными полями. Но что внутри — модель всё ещё может выдумать. Поле age точно будет числом, но число может оказаться неверным. Формат — да, факты — проверяй сам.

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение
Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →