Incluye archivos grandes en solicitudes multimodales y administra archivos con Cloud Storage para Firebase

Cuando llames a Gemini API desde tu app con una SDK de Vertex AI in Firebase, puedes indicarle al modelo de Gemini que genere texto basadas en una entrada multimodal. Las instrucciones multimodales pueden incluir múltiples modalidades (o tipos de entrada), como texto junto con imágenes, archivos PDF, videos y audio.

Para las partes de la entrada que no son de texto (como los archivos multimedia), puedes usar Cloud Storage for Firebase para incluir archivos en la solicitud En un de alto nivel, esto es lo que debes saber sobre esta función:

  • Puedes usar Cloud Storage for Firebase con cualquier solicitud multimodal (como ambas generación de texto y chat). Los ejemplos de en esta guía se muestra una entrada básica de imagen y texto.

  • Especificas el tipo de MIME del archivo y su URL de Cloud Storage for Firebase. (que siempre comienzan con gs://) en la entrada de la solicitud. Estos valores son metadatos asignados automáticamente a cualquier archivo subido a una Cloud Storage bucket.

  • Debes utilizar un tipo de archivo y una URL compatibles.


En esta guía de soluciones, se describe cómo configurar Cloud Storage for Firebase en el Google Cloud, sube un archivo de tu app a un bucket Cloud Storage for Firebase y, luego, incluir el tipo de MIME y la URL de Cloud Storage for Firebase del archivo en tu solicitud multimodal a Gemini API.

¿Quieres ver los ejemplos de código? ¿O ya configuraste Cloud Storage for Firebase y ya puedes comenzar a usarla con tu solicitudes multimodales?

Ir a los ejemplos de código

¿Por qué usar Cloud Storage for Firebase con tu app?

Cloud Storage for Firebase usa la misma infraestructura rápida, segura y infraestructura escalable como Google Cloud Storage para almacenar BLOB y archivos, y sus SDK clientes se crearon específicamente para apps web y para dispositivos móviles.

Para los SDKs de Vertex AI in Firebase, el tamaño máximo de solicitud es de 20 MB. Si una solicitud es demasiado grande, se mostrará el error HTTP 413. Si el tamaño de un archivo haga que el tamaño total de la solicitud supere los 20 MB, luego utilice Es la URL de Cloud Storage for Firebase para incluir el archivo en tu solicitud multimodal. Sin embargo, si un archivo es pequeño, a menudo se puede pasar directamente como datos intercalados. (ten en cuenta que un archivo proporcionado como datos intercalados se codifica en Base64 en transporte público, lo que aumenta el tamaño de la solicitud).

Estos son algunos beneficios adicionales de usar Cloud Storage for Firebase:

  • Puedes hacer que los usuarios finales suban imágenes directamente desde tu app a un Cloud Storage for Firebase y, luego, podrás incluir esas imágenes en tus instrucciones multimodales con solo especificar el tipo de MIME del archivo y Es la URL de Cloud Storage for Firebase (que es un identificador del archivo).

  • Puede ahorrarles tiempo y ancho de banda a sus usuarios finales si necesitan proporcionar imágenes. especialmente si la calidad de la red es deficiente o inestable.

    • Si se interrumpe la carga o descarga de un archivo, la Cloud Storage for Firebase Los SDKs reinician automáticamente la operación justo donde se detuvo.
    • El mismo archivo subido se puede usar varias veces sin que el usuario final lo tenga tener que subir el mismo archivo cada vez que sea necesario en tu aplicación (como en un nueva solicitud multimodal).
  • Puedes restringir el acceso de los usuarios finales a los archivos almacenados en Cloud Storage for Firebase mediante Firebase Security Rules que solo permiten que un usuario autorizado suba, descargue o borre archivos.

  • Puedes acceder a los archivos de tu bucket desde Firebase o desde Google Cloud. lo que te da la flexibilidad para hacer procesamiento en el servidor, como el filtrado o transcodificación de video con las APIs de Google Cloud Storage.

¿Qué tipos de archivos y URL son compatibles?

Estos son los requisitos de los archivos y las URLs cuando quieras usar URLs Cloud Storage for Firebase con los SDK de Vertex AI in Firebase:

  • El archivo debe cumplir con los requisitos de los archivos de entrada para solicitudes multimodales cuando se usan los SDK de Vertex AI in Firebase. Esto incluye los requisitos como el tipo de MIME y el tamaño del archivo.

  • El archivo debe almacenarse en un bucket Cloud Storage for Firebase (lo que significa que los servicios de Firebase, como Firebase Security Rules, pueden acceder al bucket). Si puedes ver tu bucket en el Consola de Firebase, entonces es un bucket Cloud Storage for Firebase.

  • El bucket Cloud Storage for Firebase debe estar en el mismo proyecto de Firebase en en el que registraste tu app.

  • La URL Cloud Storage for Firebase del archivo debe comenzar con gs://, que es la forma en que se construyen todas las URLs de Google Cloud Storage.

  • La URL del archivo no puede ser un "navegador" URL (por ejemplo, la URL de una imagen que encuentras en Internet).

Además, el Firebase Security Rules de tu bucket debe permitir el acceso adecuado al archivo. Por ejemplo:

  • Si tienes reglas públicas, entonces cualquier usuario o cliente puede acceder al archivo y proporcionar su URL en una llamada con un SDK de Vertex AI in Firebase. Estos tipos de reglas solo se deben usar y durante las primeras etapas del prototipado (a menos que los archivos sean archivos de acceso público en su totalidad).

  • Si tienes reglas sólidas (muy recomendado), Firebase verificará que el usuario o si el cliente tiene acceso suficiente al archivo antes de permitir que se inicie la llamada con la URL proporcionada.

Usa Cloud Storage for Firebase URLs con Vertex AI in Firebase

Paso 1: Configura Cloud Storage for Firebase

Estas son las tareas de alto nivel que deberás realizar:

  1. Crea un bucket Cloud Storage for Firebase en tu proyecto de Firebase.

  2. Aplica Firebase Security Rules a este bucket. Firebase Security Rules te ayudará para proteger tus archivos restringiendo el acceso a los usuarios finales autorizados.

  3. Agrega la biblioteca cliente de Cloud Storage for Firebase a tu app.

    Ten en cuenta que puedes omitir esta tarea, pero debes siempre Incluye de forma explícita el tipo de MIME y los valores de URL de Cloud Storage for Firebase en tus solicitudes multimodales.

Paso 2: Sube un archivo a un bucket

Cuando subes un archivo a un bucket, Cloud Storage se aplica automáticamente los siguientes dos datos al archivo. Deberás incluir estos valores en la solicitud multimodal (como se muestra en el siguiente paso de esta guía).

  • Tipo de MIME: Es el tipo de medio del archivo (por ejemplo, image/png). Cloud Storage for Firebase intentará detectar automáticamente el tipo de MIME durante la carga y aplicar esos metadatos al objeto en el bucket. Sin embargo, de manera opcional, puedes especificar el tipo de MIME durante la carga.

  • URL de Cloud Storage for Firebase: Es un identificador único del archivo. La URL debe comenzar con gs://.

Paso 3: Incluye el tipo de MIME y la URL del archivo en una solicitud multimodal

Una vez que tengas un archivo almacenado en un bucket Cloud Storage for Firebase, puedes Incluye su tipo de MIME y la URL de Cloud Storage for Firebase en una solicitud multimodal. Ten en cuenta que estos ejemplos muestran una solicitud generateContent sin transmisión, pero puedes también puedes usar URLs de Cloud Storage for Firebase con transmisión y chat.

Para incluir el archivo en la solicitud, puedes usar cualquiera de las siguientes opciones:

Opción 1: Incluye el tipo de MIME y la URL mediante una referencia de Storage

Usa esta opción si acabas de subir el archivo al bucket y quieres incluir inmediatamente el archivo (con una referencia de Storage) en la red multimodal para cada solicitud. La llamada requiere tanto el tipo de MIME como la URL de Cloud Storage for Firebase.

Opción 2: Incluye el tipo de MIME y la URL de forma explícita

Usa esta opción si conoces los valores para el tipo de MIME y Cloud Storage for Firebase de la URL y deseas incluirlos explícitamente en el multimodal. La llamada requiere tanto el tipo de MIME como la URL.