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?
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:
Crie um bucket do Cloud Storage for Firebase no seu projeto do Firebase.
Aplique Firebase Security Rules a este bucket. Firebase Security Rules ajudam você restringir o acesso a usuários finais autorizados para proteger seus arquivos;
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.