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, é possível solicitar que o modelo do 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 não textuais da entrada (como arquivos de mídia), você tem a opção de usar o Cloud Storage para Firebase para incluir arquivos na solicitação. Confira 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 deste 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 URL compatíveis.


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

Quer conferir os exemplos de código? Ou você já configurou o Cloud Storage para Firebase e está 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. Os SDKs do cliente foram criados especificamente para apps para dispositivos móveis e da Web.

Em SDKs da Vertex AI para Firebase, o tamanho máximo da solicitação é de 20 MB. Você 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 exceda 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 para base64 em trânsito, o que aumenta o tamanho da solicitação.

Veja outros benefícios de usar o Cloud Storage para Firebase:

  • Os usuários finais podem fazer o upload de imagens diretamente do seu app para um bucket do Cloud Storage para Firebase. Depois, é possível incluir essas imagens nos comandos multimodais 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 de rede for ruim ou lenta.

    • Se o upload ou download de um arquivo for interrompido, os SDKs do Cloud Storage para Firebase reiniciarão automaticamente a operação exatamente de onde parou.
    • O mesmo arquivo pode ser usado várias vezes sem que o usuário final precise fazer upload dele todas as vezes que for necessário no seu app (como em uma nova solicitação multimodal).
  • É possível restringir o acesso do usuário final a 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 pelo Firebase ou pelo Google Cloud, oferecendo a flexibilidade de realizar processamento do lado do servidor, como filtragem de imagens ou transcodificação de vídeo usando as APIs do Google Cloud Storage.

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

Veja os requisitos para arquivos e URLs quando você quiser 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 do 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ê conseguir visualizar o 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 criados.

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

Além disso, as regras de segurança do Firebase para seu 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 dele em uma chamada usando um SDK da Vertex AI para Firebase. Esses tipos de regras só devem ser usados para começar a prototipagem e durante a prototipagem inicial, a menos que os arquivos sejam realmente 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 que a chamada seja realizada 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

Estas são as tarefas gerais que você precisará realizar:

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

  2. Aplique as regras de segurança do Firebase a este bucket. As regras de segurança do Firebase ajudam 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.

    É possível pular essa tarefa, mas é preciso sempre incluir 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 o upload de um arquivo para um bucket, o Cloud Storage aplica automaticamente as duas informações a seguir ao arquivo. 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, é possível 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 URL e o tipo MIME 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 que não é de streaming, mas você também pode 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 explicitamente o URL e o tipo MIME

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