Inclua arquivos grandes em solicitações multimodais e gerencie arquivos usando o Cloud Storage para Firebase

Ao chamar a API Gemini no seu app usando um SDK da Vertex AI para Firebase, você pode solicitar que o modelo Gemini gere texto com base em uma entrada multimodal. Os comandos multimodais podem incluir várias modalidades (ou tipos de entrada), como texto com imagens, PDFs, vídeo e áudio.

Para as partes da entrada que não são de texto (como arquivos de mídia), você tem a opção de usar o Cloud Storage para Firebase para incluir arquivos na solicitação. Veja o que você precisa saber sobre esse recurso:

  • É possível usar o Cloud Storage para Firebase com qualquer solicitação multimodal, como geração de texto e chat. Os exemplos neste guia mostram uma entrada básica de texto e imagem.

  • Você especifica o tipo MIME do arquivo e o URL do Cloud Storage para Firebase (que sempre começa com gs://) na entrada da solicitação. Esses valores são metadados atribuídos automaticamente a qualquer arquivo enviado a um bucket do Cloud Storage.

  • É necessário usar um tipo de arquivo e um URL compatíveis.


Neste guia de solução, descrevemos como configurar o Cloud Storage para Firebase no Google Cloud, fazer upload de um arquivo do seu app para um bucket do Cloud Storage para Firebase e incluir o tipo MIME do arquivo e o URL do Cloud Storage para Firebase na solicitação multimodal para a API Gemini.

Você quer conferir os exemplos de código? Ou você já configurou o Cloud Storage para Firebase e está com tudo pronto para começar a usá-lo com suas solicitações multimodais?

Ir para os exemplos de código

Por que usar o Cloud Storage para Firebase com seu app?

O Cloud Storage para Firebase usa a mesma infraestrutura rápida, segura e escalonável que o Google Cloud Storage para armazenar blobs e arquivos. Além disso, os SDKs do cliente dele são criados especificamente para apps da Web e para dispositivos móveis.

Nos SDKs da Vertex AI para Firebase, o tamanho máximo da solicitação é de 20 MB. Você vai receber um erro HTTP 413 se uma solicitação for muito grande. Se o tamanho de um arquivo fizer com que o tamanho total da solicitação ultrapasse 20 MB, use um URL do Cloud Storage para Firebase para incluir o arquivo na solicitação multimodal. No entanto, se um arquivo for pequeno, você poderá transmiti-lo diretamente como dados inline. No entanto, um arquivo fornecido como dados inline é codificado como base64 em trânsito, o que aumenta o tamanho da solicitação.

Confira outros benefícios do uso do Cloud Storage para Firebase:

  • Os usuários finais podem fazer upload de imagens diretamente do seu app para um bucket do Cloud Storage para Firebase e, em seguida, incluir essas imagens em solicitações multimodais apenas especificando o tipo MIME do arquivo e o URL do Cloud Storage para Firebase (que é um identificador do arquivo).

  • Você pode economizar tempo e largura de banda dos usuários finais se eles precisarem fornecer imagens, especialmente se a qualidade da rede for ruim ou instável.

    • Se o upload ou o download de um arquivo for interrompido, os SDKs do Cloud Storage para Firebase reiniciarão a operação automaticamente de onde parou.
    • O mesmo arquivo enviado pode ser usado várias vezes sem que o usuário final precise fazer upload do mesmo arquivo sempre que necessário no app (como em uma nova solicitação multimodal).
  • É possível restringir o acesso do usuário final aos arquivos armazenados no Cloud Storage para Firebase usando as regras de segurança do Firebase, que permitem que apenas um usuário autorizado faça upload, download ou exclua arquivos.

  • É possível acessar os arquivos no seu bucket no Firebase ou no Google Cloud, oferecendo a flexibilidade de fazer processamentos do lado do servidor, como filtragem de imagens ou transcodificação de vídeo usando as APIs do Google Cloud Storage.

Quais tipos de arquivos e URLs são compatíveis?

Confira os requisitos de arquivos e URLs para usar URLs do Cloud Storage para Firebase com os SDKs da Vertex AI para Firebase:

  • O arquivo precisa atender aos requisitos de arquivos de entrada para solicitações multimodais ao usar os SDKs da Vertex AI para Firebase. Isso inclui requisitos como tipo MIME e tamanho de arquivo.

  • O arquivo precisa ser armazenado em um bucket do Cloud Storage para Firebase, o que significa que o bucket pode ser acessado por serviços do Firebase, como as regras de segurança do Firebase. Se você visualizar seu bucket no Console do Firebase, ele é um bucket do Cloud Storage para Firebase.

  • O bucket do Cloud Storage para Firebase precisa estar no mesmo projeto do Firebase em que você registrou o app.

  • O URL do Cloud Storage para Firebase do arquivo precisa começar com gs://, que é a maneira como todos os URLs do Google Cloud Storage são construídos.

  • O URL do arquivo não pode ser um "navegador" (por exemplo, o URL de uma imagem que você encontra na Internet).

Além disso, as regras de segurança do Firebase para o bucket precisam permitir o acesso apropriado ao arquivo. Exemplo:

  • Se você tiver regras públicas, qualquer usuário ou cliente poderá acessar o arquivo e fornecer o URL em uma chamada usando um SDK da Vertex AI para Firebase. Esses tipos de regras só devem ser usados no início e durante a prototipagem inicial (a menos que os arquivos sejam de fato acessíveis publicamente).

  • Se você tiver regras robustas (altamente recomendado), o Firebase vai verificar se o usuário ou cliente conectado tem acesso suficiente ao arquivo antes de permitir a chamada com o URL fornecido.

Usar URLs do Cloud Storage para Firebase com a Vertex AI para Firebase

Etapa 1: configurar o Cloud Storage para Firebase

Aqui estão as tarefas de alto nível que você precisará realizar:

  1. Crie um bucket do Cloud Storage para Firebase no projeto do Firebase.

  2. Aplique as regras de segurança do Firebase a esse bucket. As regras de segurança do Firebase ajudam você a proteger seus arquivos restringindo o acesso a usuários finais autorizados.

  3. Adicione a biblioteca de cliente do Cloud Storage para Firebase ao seu app.

    Você pode pular essa tarefa, mas sempre inclua explicitamente o tipo MIME e os valores de URL do Cloud Storage para Firebase nas solicitações multimodais.

Etapa 2: fazer upload de um arquivo para um bucket

Quando você faz upload de um arquivo para um bucket, o Cloud Storage aplica automaticamente a ele as duas informações a seguir. Você precisará incluir esses valores na solicitação multimodal (conforme mostrado na próxima etapa deste guia).

  • Tipo MIME: é o tipo de mídia do arquivo (por exemplo, image/png). O Cloud Storage para Firebase tentará detectar automaticamente o tipo MIME durante o upload e aplicará esses metadados ao objeto no bucket. No entanto, você tem a opção de especificar o tipo MIME durante o upload.

  • URL do Cloud Storage para Firebase: é um identificador exclusivo do arquivo. O URL precisa começar com gs://.

Etapa 3: incluir o tipo MIME e o URL do arquivo em uma solicitação multimodal

Depois de armazenar um arquivo em um bucket do Cloud Storage para Firebase, é possível incluir o tipo MIME e o URL do Cloud Storage para Firebase em uma solicitação multimodal. Esses exemplos mostram uma solicitação generateContent sem streaming, mas também é possível usar URLs do Cloud Storage para Firebase com streaming e chat.

Para incluir o arquivo na solicitação, use uma das seguintes opções:

Opção 1: incluir o tipo MIME e o URL usando uma referência do Storage

Use essa opção se você acabou de fazer upload do arquivo para o bucket e quer incluí-lo imediatamente (por meio de uma referência do Storage) na solicitação multimodal. A chamada requer o tipo MIME e o URL do Cloud Storage para Firebase.

Opção 2: incluir o tipo MIME e o URL explicitamente

Use essa opção se você souber os valores do tipo MIME e o URL do Cloud Storage para Firebase e quiser incluí-los explicitamente na solicitação multimodal. A chamada requer o tipo MIME e o URL.