Gemini API по умолчанию возвращает ответы в виде неструктурированного текста. Однако в некоторых случаях использования требуется структурированный текст, например JSON. Например, вы можете использовать ответ для других последующих задач, требующих установленной схемы данных.
Чтобы гарантировать, что выходные данные модели всегда соответствуют определенной схеме, вы можете определить схему ответа , которая работает как образец ответов модели. Затем вы можете напрямую извлекать данные из выходных данных модели с меньшими затратами на постобработку.
Вот несколько примеров:
Убедитесь, что ответ модели создает действительный JSON и соответствует предоставленной вами схеме.
Например, модель может генерировать структурированные записи для рецептов, которые всегда включают название рецепта, список ингредиентов и этапы. После этого вам будет проще анализировать и отображать эту информацию в пользовательском интерфейсе вашего приложения.Ограничьте реакцию модели на выполнение задач классификации.
Например, вы можете аннотировать текст модели определенным набором меток (например, определенным набором перечислений, таких какpositive
иnegative
), а не метками, которые создает модель (которые могут иметь определенную степень изменчивости, например,good
,positive
,negative
илиbad
).
В этом руководстве показано, как генерировать выходные данные JSON, предоставляя responseSchema
при вызове generateContent
. Он ориентирован на ввод только текста, но Gemini также может выдавать структурированные ответы на мультимодальные запросы, которые включают в себя изображения, видео и аудио в качестве входных данных.
Внизу этой страницы приведены дополнительные примеры, например, как генерировать значения перечисления в качестве вывода . Чтобы просмотреть дополнительные примеры того, как вы можете генерировать структурированный вывод, ознакомьтесь со списком примеров схем и ответов моделей в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API « Google AI ».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на наши Vertex AI in Firebase SDK (эта документация), которые имеют множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка большие медиафайлы в запросах .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Шаг 1. Определите схему ответа.
Определите схему ответа, чтобы указать структуру выходных данных модели, имена полей и ожидаемый тип данных для каждого поля.
Когда модель генерирует ответ, она использует имя поля и контекст из вашего приглашения. Чтобы ваше намерение было ясным, мы рекомендуем использовать четкую структуру, однозначные названия полей и даже описания, если это необходимо.
Рекомендации по схемам ответов
При написании схемы ответа помните следующее:
Размер схемы ответа учитывается при расчете лимита входного токена.
Функция схемы ответа поддерживает следующие типы MIME ответов:
application/json
: выводит JSON, как определено в схеме ответа (полезно для требований структурированного вывода)text/x.enum
: вывести значение перечисления, как определено в схеме ответа (полезно для задач классификации)
Функция схемы ответа поддерживает следующие поля схемы:
enum
items
maxItems
nullable
properties
required
Если вы используете неподдерживаемое поле, модель все равно сможет обработать ваш запрос, но игнорирует это поле. Обратите внимание, что приведенный выше список является подмножеством объекта схемы OpenAPI 3.0 (см. справочник по схеме Vertex AI ).
По умолчанию для Vertex AI in Firebase SDK все поля считаются обязательными , если вы не укажете их как необязательные в массиве
optionalProperties
. Для этих необязательных полей модель может заполнять поля или пропускать их.Обратите внимание, что это противоположно поведению по умолчанию для Vertex AI Gemini API .
Шаг 2. Отправьте запрос со схемой ответа для создания JSON.
В следующем примере показано, как создать структурированный вывод JSON.
Чтобы сгенерировать структурированный вывод, во время инициализации модели необходимо указать соответствующий responseMimeType
(в данном примере — application/json
), а также responseSchema
, которую вы хотите использовать в модели.
Использование responseSchema
поддерживается Gemini 1.5 Pro и Gemini 1.5 Flash.
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.
Дополнительные примеры
Чтобы просмотреть дополнительные примеры того, как вы можете использовать и генерировать структурированный вывод, ознакомьтесь со списком примеров схем и ответов моделей в документации Google Cloud .
Генерация значений перечисления в качестве вывода
В следующем примере показано, как использовать схему ответа для задачи классификации. Модель просят определить жанр фильма на основе его описания. Выходные данные представляют собой одно значение перечисления в виде обычного текста, которое модель выбирает из списка значений, определенных в предоставленной схеме ответа.
Чтобы выполнить эту задачу структурированной классификации, во время инициализации модели вам необходимо указать соответствующий responseMimeType
(в данном примере text/x.enum
), а также responseSchema
, который вы хотите, чтобы модель использовала.
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.
Другие варианты управления созданием контента
- Узнайте больше о разработке подсказок , чтобы вы могли влиять на модель и генерировать выходные данные, соответствующие вашим потребностям.
- Настройте параметры модели , чтобы контролировать, как модель генерирует ответ. Эти параметры включают максимальное количество выходных токенов, температуру, topK и topP.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные, включая разжигание ненависти и контент откровенно сексуального характера.
- Установите системные инструкции для управления поведением модели. Эта функция похожа на «преамбулу», которую вы добавляете перед тем, как модель будет подвергнута дальнейшим инструкциям от конечного пользователя.
Оставьте отзыв о своем опыте использования Vertex AI in Firebase
Gemini API по умолчанию возвращает ответы в виде неструктурированного текста. Однако в некоторых случаях требуется структурированный текст, например JSON. Например, вы можете использовать ответ для других последующих задач, требующих установленной схемы данных.
Чтобы гарантировать, что выходные данные модели всегда соответствуют определенной схеме, вы можете определить схему ответа , которая работает как образец ответов модели. Затем вы можете напрямую извлекать данные из выходных данных модели с меньшими затратами на постобработку.
Вот несколько примеров:
Убедитесь, что ответ модели создает действительный JSON и соответствует предоставленной вами схеме.
Например, модель может генерировать структурированные записи для рецептов, которые всегда включают название рецепта, список ингредиентов и этапы. После этого вам будет проще анализировать и отображать эту информацию в пользовательском интерфейсе вашего приложения.Ограничьте реакцию модели на выполнение задач классификации.
Например, вы можете аннотировать текст модели определенным набором меток (например, определенным набором перечислений, таких какpositive
иnegative
), а не метками, которые создает модель (которые могут иметь определенную степень изменчивости, например,good
,positive
,negative
илиbad
).
В этом руководстве показано, как генерировать выходные данные JSON, предоставляя responseSchema
при вызове generateContent
. Он ориентирован на ввод только текста, но Gemini также может выдавать структурированные ответы на мультимодальные запросы, которые включают в себя изображения, видео и аудио в качестве входных данных.
Внизу этой страницы приведены дополнительные примеры, например, как генерировать значения перечисления в качестве вывода . Чтобы просмотреть дополнительные примеры создания структурированного вывода, ознакомьтесь со списком примеров схем и ответов моделей в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API « Google AI ».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на наши Vertex AI in Firebase SDK (эта документация), которые имеют множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка большие медиафайлы в запросах .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Шаг 1. Определите схему ответа.
Определите схему ответа, чтобы указать структуру выходных данных модели, имена полей и ожидаемый тип данных для каждого поля.
Когда модель генерирует ответ, она использует имя поля и контекст из вашего приглашения. Чтобы ваше намерение было ясным, мы рекомендуем использовать четкую структуру, однозначные названия полей и даже описания, если это необходимо.
Рекомендации по схемам ответов
При написании схемы ответа помните следующее:
Размер схемы ответа учитывается при расчете лимита входного токена.
Функция схемы ответа поддерживает следующие типы MIME ответов:
application/json
: выводит JSON, как определено в схеме ответа (полезно для требований структурированного вывода)text/x.enum
: вывести значение перечисления, как определено в схеме ответа (полезно для задач классификации)
Функция схемы ответа поддерживает следующие поля схемы:
enum
items
maxItems
nullable
properties
required
Если вы используете неподдерживаемое поле, модель все равно сможет обработать ваш запрос, но игнорирует это поле. Обратите внимание, что приведенный выше список является подмножеством объекта схемы OpenAPI 3.0 (см. справочник по схеме Vertex AI ).
По умолчанию для Vertex AI in Firebase SDK все поля считаются обязательными , если вы не укажете их как необязательные в массиве
optionalProperties
. Для этих необязательных полей модель может заполнять поля или пропускать их.Обратите внимание, что это противоположно поведению по умолчанию для Vertex AI Gemini API .
Шаг 2. Отправьте запрос со схемой ответа для создания JSON.
В следующем примере показано, как создать структурированный вывод JSON.
Чтобы сгенерировать структурированный вывод, во время инициализации модели необходимо указать соответствующий responseMimeType
(в данном примере — application/json
), а также responseSchema
, который вы хотите, чтобы модель использовала.
Использование responseSchema
поддерживается Gemini 1.5 Pro и Gemini 1.5 Flash.
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.
Дополнительные примеры
Чтобы просмотреть дополнительные примеры того, как вы можете использовать и генерировать структурированный вывод, ознакомьтесь со списком примеров схем и ответов моделей в документации Google Cloud .
Генерация значений перечисления в качестве вывода
В следующем примере показано, как использовать схему ответа для задачи классификации. Модель просят определить жанр фильма на основе его описания. Выходные данные представляют собой одно значение перечисления в виде обычного текста, которое модель выбирает из списка значений, определенных в предоставленной схеме ответа.
Чтобы выполнить эту задачу структурированной классификации, во время инициализации модели вам необходимо указать соответствующий responseMimeType
(в данном примере text/x.enum
), а также responseSchema
, который вы хотите, чтобы модель использовала.
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение, подходящее для вашего варианта использования и приложения.
Другие варианты управления созданием контента
- Узнайте больше о разработке подсказок , чтобы вы могли влиять на модель и генерировать выходные данные, соответствующие вашим потребностям.
- Настройте параметры модели , чтобы контролировать, как модель генерирует ответ. Эти параметры включают максимальное количество токенов вывода, температуру, topK и topP.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные, включая разжигание ненависти и контент откровенно сексуального характера.
- Установите системные инструкции для управления поведением модели. Эта функция похожа на «преамбулу», которую вы добавляете перед тем, как модель будет подвергнута дальнейшим инструкциям от конечного пользователя.
Оставьте отзыв о своем опыте использования Vertex AI in Firebase