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

Обзор

Структурированные выходные данные позволяют: — принудительно выполнять специальную проверку схемы JSON для ответов модели.
  • Получайте последовательные, типобезопасные выходные данные.
  • Избегайте ошибок синтаксического анализа и галлюцинаторных полей. — Упростите обработку ответов в вашем приложении.

Использование структурированных выходных данных

Чтобы использовать структурированные выходные данные, включите Параметр response_format в вашем запросе, с type установлен на json_schema и Объект json_schema , содержащий вашу схему:
Модель ответит объектом JSON, который строго соответствует вашей схеме:

Поддержка моделей

Структурированные выходные данные поддерживаются некоторыми моделями. Список моделей, поддерживающих структурированный вывод, можно найти на странице модели. Поддержка определяется для каждой эндпоинта, а не только для каждой модели: одна и та же модель может обслуживаться несколькими поставщиками, и только некоторые из этих поставщиков могут поддерживать структурированные выходные данные. Поддержка эндпоинтов также может меняться со временем. Чтобы узнать, какие поставщики поддерживают структурированные выходные данные для конкретной модели, установите флажок Параметр structured_outputs в разделе «Поставщики» на странице модели. Подробную информацию о реализации каждого провайдера смотрите в его документации, например: Чтобы ваш запрос направлялся только на эндпоинты, поддерживающие структурированный вывод:
  1. Проверьте поддерживаемые параметры модели на странице модели
  2. Установить require_parameters: true в настройках вашего провайдера (см. Маршрутизация провайдера)
  3. Включить response_format и установил type: json_schema в необходимых параметрах

Лучшие практики

  1. Включайте описания: добавьте четкие описания к свойствам схемы, чтобы направлять модель.
  2. Использовать строгий режим: Установите strict: true , чтобы поставщики с собственным строгим режимом точно применяли вашу схему. Принудительное соблюдение зависит от поставщика: некоторые гарантируют вывод, соответствующий схеме, в то время как другие переводят вашу схему в свой собственный формат структурированного вывода или рассматривают это как сильный намек, поэтому точное соответствие не гарантируется на каждой эндпоинту. Строгие режимы также могут ограничивать возможности использования JSON-схемы — подробности см. в документации поставщика.

Пример реализации

Вот полный пример использования Fetch API:

Потоковая передача со структурированным выводом

Структурированные выходные данные также поддерживаются потоковыми ответами. Модель будет передавать действительный частичный JSON, который по завершении формирует действительный ответ, соответствующий вашей схеме. Чтобы включить потоковую передачу со структурированным выводом, просто добавьте stream: true на ваш запрос:

Обработка ошибок

При использовании структурированных выходных данных вы можете столкнуться со следующими сценариями:
  1. Модель не поддерживает структурированные выходные данные: запрос завершится с ошибкой, указывающей на отсутствие поддержки.
  2. Неверная схема: модель вернет ошибку, если ваша схема JSON недействительна.

Починка ответов

Для непотоковых запросов с response_format и type: "json_schema" вы можете включить плагин Response Healing, чтобы снизить риск невалидного JSON, когда модель возвращает неточное форматирование. Подробности — в документации по Response Healing.