Гайд · TNWS AI

Как получить Structured Outputs в OpenAI API по JSON Schema

1 мин

Как заставить модель вернуть данные по JSON Schema, проверить обязательные поля и корректно обработать отказ или неполный ответ.

Зачем нужна строгая схема

Если ответ передаётся в интерфейс, базу данных или следующий процесс, свободный текст неудобен. Structured Outputs позволяет описать ожидаемые поля через JSON Schema и снизить число ошибок парсинга.

Как настроить

  1. Опишите минимальную JSON Schema: тип объекта, свойства и обязательные поля.
  2. Запретите лишние свойства, если они не нужны приложению.
  3. Передайте схему в поддерживаемом формате ответа или определении инструмента.
  4. Получите результат и всё равно проверьте его валидатором на сервере.
  5. Отдельно обработайте отказ, обрыв ответа и сетевую ошибку.

Пример структуры

Для карточки статьи достаточно полей title, summary и tags. Не просите модель возвращать двадцать вложенных объектов, если бизнес-задача использует только три значения.

Как проверять

Добавьте тесты на пустые строки, неожиданный язык, слишком длинный заголовок и отсутствие данных в исходнике. Схема проверяет форму, но не истинность факта.

Чего не делать

Не вставляйте результат в SQL или HTML без дополнительной безопасной обработки и не считайте валидный JSON достоверным ответом.

Официальный источник

OpenAI Platform Documentation: https://platform.openai.com/docs/guides/structured-outputs

Частые вопросы

Это просто просьба вернуть JSON?

Нет, Structured Outputs связывает ответ с заданной схемой, но приложение всё равно должно валидировать результат.

Что делать при отказе модели?

Обработать отказ как отдельный ожидаемый результат, а не пытаться парсить его как бизнес-объект.

Что проверить перед продакшеном?

Схему ответа, обработку ошибок, лимиты, стоимость на тестовом объёме и отсутствие секретов в клиентском коде.

Читайте также

Комментарии

Пока тихо. Скажите первое слово