Короткий ответ
Считайте ответ модели недоверенным текстом. Попросите JSON, сохраните исходный ответ, разберите его локально и проверьте объект через Pydantic. Если проверка не прошла, верните явную ошибку или выполните одну ограниченную попытку исправления. Этот подход не требует специального параметра структурированного вывода конкретного провайдера. Он также не гарантирует валидный JSON с первой попытки.Пример на Python
Установите OpenAI SDK и Pydantic, затем вызовите OpenAI-compatible Chat Completions API:Конвейер проверки
- Опишите минимальную схему, необходимую приложению.
- Запросите JSON без полей, которых нет в схеме.
- Сохраните исходный ответ в защищённом месте, если это допускает ваша политика данных.
- Разберите ответ через
json.loads. - Проверьте объект через
model_validate. - Верните явную ошибку или выполните одну ограниченную попытку исправления.
Что проверять при ошибке
Pydantic проверяет объект на стороне клиента. Он не подтверждает истинность фактических значений. Для идентификаторов, прав, сумм и других правил нужны отдельные бизнес-проверки.

