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?
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:
Crie um bucket do Cloud Storage para Firebase no seu projeto do Firebase.
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.
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.