Включайте большие файлы в мультимодальные запросы и управляйте файлами с помощью Cloud Storage for Firebase.

При вызове API Gemini из вашего приложения с помощью Vertex AI для Firebase SDK вы можете предложить модели Gemini сгенерировать текст на основе мультимодальных входных данных. Мультимодальные подсказки могут включать в себя несколько модальностей (или типов ввода), например текст, изображения, PDF-файлы, видео и аудио.

Для нетекстовых частей входных данных (например, медиафайлов) вы можете дополнительно использовать Cloud Storage for Firebase для включения файлов в запрос. Вкратце, вот что вам нужно знать об этой функции:

  • Вы можете использовать Cloud Storage for Firebase с любым мультимодальным запросом (например, созданием текста или чатом). Примеры в этом руководстве демонстрируют базовый ввод текста и изображений.

  • Во входных данных запроса вы указываете MIME-тип файла и его URL-адрес Cloud Storage for Firebase (который всегда начинается с gs:// ). Эти значения представляют собой метаданные, автоматически присваиваемые любому файлу, загружаемому в корзину Cloud Storage.

  • Вам необходимо использовать поддерживаемый тип файла и URL-адрес .


В этом руководстве по решению описывается, как настроить Cloud Storage for Firebase в Google Cloud, загрузить файл в корзину Cloud Storage for Firebase из вашего приложения, а затем включить MIME-тип файла и URL-адрес Cloud Storage for Firebase в мультимодальный запрос к API Близнецов.

Хотите увидеть примеры кода? Или вы уже настроили Cloud Storage для Firebase и готовы начать использовать его для своих мультимодальных запросов?

Перейти к примерам кода

Зачем использовать Cloud Storage для Firebase со своим приложением?

Cloud Storage for Firebase использует ту же быструю, безопасную и масштабируемую инфраструктуру, что и Google Cloud Storage, для хранения больших двоичных объектов и файлов, а его клиентские SDK специально созданы для мобильных и веб-приложений.

Для Vertex AI для Firebase SDK максимальный размер запроса составляет 20 МБ. Вы получаете ошибку HTTP 413, если запрос слишком велик. Если из-за размера файла общий размер запроса превышает 20 МБ, используйте URL-адрес Cloud Storage for Firebase, чтобы включить файл в свой мультимодальный запрос. Однако, если файл небольшой, вы часто можете передать его напрямую как встроенные данные (однако обратите внимание, что файл, предоставленный как встроенные данные, при передаче кодируется в base64, что увеличивает размер запроса).

Вот некоторые дополнительные преимущества использования Cloud Storage для Firebase:

  • Вы можете позволить конечным пользователям загружать изображения непосредственно из вашего приложения в корзину Cloud Storage for Firebase, а затем включать эти изображения в свои мультимодальные запросы, просто указав MIME-тип файла и URL-адрес Cloud Storage for Firebase (который является идентификатором файла). файл).

  • Вы можете сэкономить время и пропускную способность конечных пользователей, если им необходимо предоставить изображения, особенно если у них плохое или нестабильное качество сети.

    • Если загрузка или загрузка файла прерывается, Cloud Storage for Firebase SDK автоматически возобновляет операцию с того места, где она была прервана.
    • Один и тот же загруженный файл можно использовать несколько раз, при этом конечному пользователю не придется загружать один и тот же файл каждый раз, когда он понадобится вашему приложению (например, в новом мультимодальном запросе).
  • Вы можете ограничить доступ конечных пользователей к файлам, хранящимся в Cloud Storage для Firebase, с помощью правил безопасности Firebase , которые позволяют только авторизованному пользователю загружать, скачивать или удалять файлы.

  • Вы можете получить доступ к файлам в своем сегменте из Firebase или из Google Cloud, что дает вам возможность выполнять обработку на стороне сервера, например фильтрацию изображений или перекодирование видео, с использованием API-интерфейсов Google Cloud Storage.

Какие типы файлов и URL-адресов поддерживаются?

Ниже приведены требования к файлам и URL-адресам, если вы хотите использовать URL-адреса Cloud Storage для Firebase с Vertex AI для Firebase SDK:

  • Файл должен соответствовать требованиям входных файлов для мультимодальных запросов при использовании Vertex AI для Firebase SDK. Сюда входят такие требования, как тип MIME и размер файла.

  • Файл должен храниться в корзине Cloud Storage for Firebase (это означает, что корзина доступна для служб Firebase, таких как правила безопасности Firebase). Если вы можете просмотреть свой сегмент в консоли Firebase , то это сегмент Cloud Storage for Firebase.

  • Корзина Cloud Storage for Firebase должна находиться в том же проекте Firebase, в котором вы зарегистрировали свое приложение.

  • URL-адрес файла Cloud Storage for Firebase должен начинаться с gs:// . Именно так создаются все URL-адреса облачного хранилища Google.

  • URL-адрес файла не может быть URL-адресом «браузера» (например, URL-адресом изображения, которое вы найдете в Интернете).

Кроме того, правила безопасности Firebase для вашего сегмента должны разрешать соответствующий доступ к файлу. Например:

  • Если у вас есть общедоступные правила , то любой пользователь или клиент может получить доступ к файлу и предоставить его URL-адрес при вызове с помощью Vertex AI для Firebase SDK. Эти типы правил следует использовать только в начале работы и на ранних стадиях прототипирования (если только файлы на самом деле не предназначены для того, чтобы быть полностью общедоступными).

  • Если у вас есть надежные правила (настоятельно рекомендуется) , Firebase проверит, имеет ли вошедший в систему пользователь или клиент достаточный доступ к файлу, прежде чем разрешить вызов с использованием предоставленного URL-адреса.

Используйте облачное хранилище для URL-адресов Firebase с Vertex AI для Firebase

Шаг 1. Настройте облачное хранилище для Firebase

Вот задачи высокого уровня, которые вам нужно будет выполнить:

  1. Создайте корзину Cloud Storage для Firebase в своем проекте Firebase.

  2. Примените правила безопасности Firebase к этому сегменту. Правила безопасности Firebase помогают защитить ваши файлы, ограничивая доступ авторизованным конечным пользователям.

  3. Добавьте клиентскую библиотеку Cloud Storage для Firebase в свое приложение.

    Обратите внимание, что вы можете пропустить эту задачу, но тогда вы всегда должны явно включать тип MIME и значения URL-адреса Cloud Storage for Firebase в свои мультимодальные запросы .

Шаг 2. Загрузите файл в корзину.

Когда вы загружаете файл в корзину, Cloud Storage автоматически применяет к файлу следующие две части информации. Вам нужно будет включить эти значения в мультимодальный запрос (как показано на следующем шаге этого руководства).

  • MIME-тип : это тип носителя файла (например, image/png ). Cloud Storage for Firebase автоматически попытается определить тип MIME во время загрузки и применить эти метаданные к объекту в корзине. Однако вы можете при желании указать тип MIME во время загрузки.

  • URL-адрес облачного хранилища для Firebase : это уникальный идентификатор файла. URL-адрес должен начинаться с gs:// .

Шаг 3. Включите MIME-тип и URL-адрес файла в мультимодальный запрос.

Если у вас есть файл, хранящийся в корзине Cloud Storage for Firebase, вы можете включить его MIME-тип и URL-адрес Cloud Storage for Firebase в мультимодальный запрос. Обратите внимание, что в этих примерах показан запрос generateContent без потоковой передачи, но вы также можете использовать URL-адреса Cloud Storage для Firebase с потоковой передачей и чатом.

Чтобы включить файл в запрос, вы можете использовать любой из следующих вариантов:

Вариант 1. Добавьте тип MIME и URL-адрес, используя ссылку на хранилище.

Используйте эту опцию, если вы только что загрузили файл в корзину и хотите немедленно включить файл (через ссылку на хранилище) в мультимодальный запрос. Для вызова требуется как тип MIME, так и URL-адрес Cloud Storage for Firebase.

Вариант 2. Явно укажите тип MIME и URL-адрес.

Используйте этот вариант, если вы знаете значения типа MIME и URL-адреса Cloud Storage for Firebase и хотите явно включить их в мультимодальный запрос. Для вызова требуется как тип MIME, так и URL-адрес.