Skip to main content

Короткий ответ

Считайте ответ модели недоверенным текстом. Попросите JSON, сохраните исходный ответ, разберите его локально и проверьте объект через Pydantic. Если проверка не прошла, верните явную ошибку или выполните одну ограниченную попытку исправления. Этот подход не требует специального параметра структурированного вывода конкретного провайдера. Он также не гарантирует валидный JSON с первой попытки.

Пример на Python

Установите OpenAI SDK и Pydantic, затем вызовите OpenAI-compatible Chat Completions API:
Возьмите полный Model ID в каталоге моделей. Храните BetterToken API Key в переменной окружения, а не в исходном коде.

Конвейер проверки

  1. Опишите минимальную схему, необходимую приложению.
  2. Запросите JSON без полей, которых нет в схеме.
  3. Сохраните исходный ответ в защищённом месте, если это допускает ваша политика данных.
  4. Разберите ответ через json.loads.
  5. Проверьте объект через model_validate.
  6. Верните явную ошибку или выполните одну ограниченную попытку исправления.
Не подставляйте пропущенные значения незаметно, не выдумывайте defaults и не повторяйте запрос бесконечно. Исправленный объект должен пройти ту же схему.

Что проверять при ошибке

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

Граница возможностей

Опубликованный контракт BetterToken Chat Completions описывает OpenAI-compatible запрос и текстовый ответ. Специальные поля структурированного вывода зависят от модели и маршрута. Не отправляйте недокументированное поле, пока выбранная модель и текущая API-справка явно его не поддерживают.

Связанные страницы