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

Ao chamar Gemini API no app usando um SDK do Vertex AI in Firebase, é possível 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 junto com imagens, PDFs, vídeo e áudio.

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

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

  • Você especifica o tipo MIME e o URL Cloud Storage for Firebase do arquivo. (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 Cloud Storage do Google Cloud.

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

.


Este guia de soluções descreve como configurar o Cloud Storage for Firebase no Google Cloud, faça upload de um arquivo do seu app para um bucket Cloud Storage for Firebase. e inclua o tipo MIME do arquivo e o URL Cloud Storage for Firebase no seu multimodal para o Gemini API.

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

Ir para os exemplos de código

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

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

Para SDKs do Vertex AI in 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 faça com que o tamanho total da solicitação ultrapasse 20 MB e, em seguida, use um Cloud Storage for Firebase para incluir o arquivo na solicitação multimodal. No entanto, se um arquivo for pequeno, muitas vezes você poderá passá-lo diretamente como dados inline (no entanto, observe que um arquivo fornecido como dados inline é codificado como base64 no trânsito, o que aumenta o tamanho da solicitação).

Confira alguns outros benefícios de usar o Cloud Storage for Firebase:

  • Você pode fazer com que os usuários finais façam o upload de imagens diretamente do seu aplicativo para um Cloud Storage for Firebase bucket e, em seguida, será possível incluir essas imagens no seus comandos multimodais apenas especificando o tipo MIME do arquivo e URL Cloud Storage for Firebase (um identificador do arquivo).

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

    • Se o upload ou download de um arquivo for interrompido, o Cloud Storage for Firebase Os SDKs reiniciam a operação automaticamente de onde ela parou.
    • O mesmo arquivo enviado pode ser usado várias vezes sem o usuário final fazer upload do mesmo arquivo sempre que for necessário no aplicativo (como em um nova solicitação multimodal).
  • Você pode restringir o acesso do usuário final aos arquivos armazenados no Cloud Storage for Firebase ao usar Firebase Security Rules, 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 pela Google Cloud. oferecendo a flexibilidade de fazer processamentos do lado do servidor, como processamento filtragem ou transcodificação de vídeo usando as APIs Google Cloud Storage.

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

Confira os requisitos para usar arquivos e URLs Cloud Storage for Firebase URLs com Vertex AI in Firebase SDKs:

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

  • O arquivo precisa ser armazenado em um bucket Cloud Storage for Firebase o que significa que o bucket pode ser acessado por serviços do Firebase, como Firebase Security Rules. Se for possível exibir seu bucket no Console do Firebase, então é um bucket Cloud Storage for Firebase.

  • O bucket Cloud Storage for Firebase precisa estar no mesmo projeto do Firebase onde você registrou seu aplicativo.

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

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

Além disso, o Firebase Security Rules do bucket precisa permitir acesso apropriado ao arquivo. Exemplo:

  • Se você tiver regras públicas, qualquer usuário ou cliente poderá acessar o arquivo e fornecer seu URL em uma chamada usando um SDK Vertex AI in Firebase. Essas regras devem ser usadas apenas no começo e durante a prototipagem (a menos que os arquivos sejam como arquivos totalmente acessíveis publicamente).

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

Usar URLs Cloud Storage for Firebase com Vertex AI in Firebase

Etapa 1: configurar o Cloud Storage for Firebase

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

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

  2. Aplique Firebase Security Rules a este bucket. Firebase Security Rules ajudam você restringir o acesso a usuários finais autorizados para proteger seus arquivos;

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

    Você pode pular essa tarefa, mas precisa sempre incluir explicitamente o tipo MIME e os valores de URL Cloud Storage for 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, Cloud Storage aplica automaticamente as duas informações a seguir ao arquivo. Você precisará incluir esses valores na solicitação multimodal (como mostrado na próxima etapa deste ).

  • Tipo MIME: é o tipo de mídia do arquivo (por exemplo, image/png). Cloud Storage for 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 Cloud Storage for 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 for Firebase, é possível incluir o tipo MIME e o URL Cloud Storage for Firebase em uma solicitação multimodal. Esses exemplos mostram uma solicitação generateContent sem streaming, mas você também pode usar URLs Cloud Storage for 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 incluir imediatamente o arquivo (por uma referência do Storage) no multimodal solicitação. A chamada requer o tipo MIME e o URL de Cloud Storage for 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 Cloud Storage for Firebase URL e você quer incluí-los explicitamente na multimodal. A chamada requer o tipo MIME e o URL.