Crie apps e recursos da Web com tecnologia de IA e inferência híbrida usando Firebase AI Logic. A inferência híbrida permite executar a inferência usando modelos no dispositivo quando disponíveis e fazer o fallback para modelos hospedados na nuvem (e vice-versa).
Esta página descreve como começar a usar o SDK do cliente. Depois de concluir essa configuração padrão setup, confira as outras opções e recursos de configuração (como saída estruturada).
A inferência no dispositivo é compatível com apps da Web executados no Chrome para computador.
Casos de uso recomendados e recursos compatíveis
Casos de uso recomendados :
O uso de um modelo no dispositivo para inferência oferece:
- Privacidade aprimorada
- Contexto local
- Inferência sem custo financeiro
- Funcionalidade off-line
O uso da funcionalidade híbrida oferece:
- Alcance 100% do seu público-alvo, independentemente da disponibilidade do modelo no dispositivo ou da conectividade com a Internet
Recursos e funcionalidades compatíveis com a inferência no dispositivo :
A inferência no dispositivo oferece suporte apenas à geração de texto de turno único (não chat), com saída de streaming ou não streaming. Ela oferece suporte aos seguintes recursos de geração de texto:
Gerar texto com base em entradas de texto e imagem, especificamente tipos de imagem de entrada JPEG e PNG
Também é possível gerar saída estruturada, incluindo JSON e enums.
Antes de começar
Observações:
A inferência usando um modelo no dispositivo usa a API Prompt do Chrome; já a inferência usando um modelo hospedado na nuvem usa oGemini API provedor escolhido (aGemini Developer API ou a Agent Platform Gemini API (formerly Vertex AI)).
Esta página descreve como começar a desenvolver usando o localhost (saiba mais sobre como usar APIs no localhost na documentação do Chrome).
Depois de concluir essa configuração padrão, confira as outras opções e recursos de configuração (como saída estruturada).
Começar no localhost
Estas etapas de introdução descrevem a configuração geral necessária para qualquer solicitação de comando compatível que você queira enviar.
Etapa 1: configurar o Chrome e a API Prompt para inferência no dispositivo
Verifique se você está usando uma versão recente do Chrome. Atualize em chrome://settings/help.
A inferência no dispositivo está disponível no Chrome v139 e versões mais recentes.Ative o modelo multimodal no dispositivo definindo a flag a seguir como Ativada:
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
Reinicie o Google Chrome.
(Opcional) Faça o download do modelo no dispositivo antes da primeira solicitação.
A API Prompt está integrada ao Chrome. No entanto, o modelo no dispositivo não está disponível por padrão. Se você ainda não fez o download do modelo antes da primeira solicitação de inferência no dispositivo, a solicitação vai iniciar automaticamente o download do modelo em segundo plano.
Etapa 2: configurar um projeto do Firebase e conectar o app ao Firebase
Faça login no Firebase console, e selecione seu Projeto do Firebase.
No console do Firebase, acesse Serviços de IA > Lógica de IA.
Clique em Começar para iniciar um fluxo de trabalho guiado que ajuda a configurar as APIs necessárias e os recursos para seu projeto.
Se solicitado, siga as instruções na tela para registrar seu app e adicionar a configuração do Firebase ao app.
Quando solicitado a escolher um "provedor da API Gemini", recomendamos selecionar a API Gemini Developer, que permite começar rapidamente sem custo financeiro.
Mais tarde, você sempre poderá configurar Agent Platform Gemini API (formerly Vertex AI) e o requisito de faturamento.
Continue no fluxo de trabalho para configurar as APIs necessárias e os serviços associados para Firebase AI Logic.
A partir do início de julho de 2026, essa etapa do fluxo de trabalho vai aplicar automaticamente o Firebase App Check para AI Logic, que é um serviço essencial para ajudar a proteger a Gemini API quando ela é acessada diretamente do seu app. Como parte da introdução (consulte as etapas mais adiante neste guia), você precisará configurar o App Check provedor de depuração para desenvolvimento local quando o App Check for aplicado.
Continue para a próxima etapa deste guia para adicionar os SDKs necessários ao seu app.
Etapa 3: adicionar o SDK
A biblioteca do Firebase oferece acesso às APIs para interagir com modelos generativos. A biblioteca está incluída no SDK do Firebase para JavaScript para Web.
Instale o SDK do Firebase para JavaScript para Web usando o npm:
npm install firebaseInicialize o Firebase no seu app:
import { initializeApp } from "firebase/app"; import { initializeAppCheck } from "firebase/app-check"; // TODO(developer) Replace the following with your app's Firebase configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize FirebaseApp const firebaseApp = initializeApp(firebaseConfig);
Etapa 4: configurar o provedor de depuração App Check para desenvolvimento local
A partir do início de julho de 2026, como parte do fluxo de trabalho de configuração guiada para AI Logic no console, Firebase App Check será aplicado automaticamente para proteger a Gemini API. Para o desenvolvimento local, é necessário configurar o App Check provedor de depuração para ignorar a atestação, mantendo a aplicação de App Check.
Veja como usar o provedor de depuração ao executar seu app de localhost de forma interativa (por exemplo, durante o desenvolvimento local):
No build de depuração, ative o modo de depuração definindo
self.FIREBASE_APPCHECK_DEBUG_TOKENcomotrueantes de inicializar App Check. Exemplo:self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(firebaseApp, { /* App Check options */ });Acesse seu app da Web localmente e abra as ferramentas para desenvolvedores do navegador. No console de depuração, você verá um token:
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.Registre seu token de depuração no App Check:
No console do Firebase, acesse a guia Segurança > App Check > Apps.
Encontre seu app, clique no menu flutuante () e selecione Gerenciar tokens de depuração.
Siga as instruções na tela para registrar seu token de depuração.
Para mais detalhes sobre o provedor de depuração (incluindo como receber um novo token de depuração), consulte a documentação App Check oficial.
Etapa 5: inicializar o serviço e criar uma instância de modelo
|
Clique no seu provedor Gemini API para conferir o conteúdo específico do provedor e o código nesta página. |
Configure o seguinte antes de enviar uma solicitação de comando ao modelo:
Inicialize o serviço para o provedor de API escolhido.
Crie uma instância
GenerativeModel. Defina omodecomo um destes:PREFER_ON_DEVICE: use o modelo no dispositivo se ele estiver disponível. Caso contrário, faça o fallback para o modelo hospedado na nuvem.ONLY_ON_DEVICE: use o modelo no dispositivo se ele estiver disponível. Caso contrário, gere uma exceção.PREFER_IN_CLOUD: use o modelo hospedado na nuvem se ele estiver disponível. Caso contrário, faça o fallback para o modelo no dispositivo.ONLY_IN_CLOUD: use o modelo hospedado na nuvem se ele estiver disponível. Caso contrário, gere uma exceção.
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
Etapa 6: inicializar o modelo no dispositivo
É necessário chamar initializeDeviceModel() depois ou em uma interação da página do usuário final (como um clique de botão) e antes de enviar uma solicitação de comando ao modelo. Saiba mais sobre o
requisito de ativação do usuário
na documentação do Chrome.
import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend, InferenceMode } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance
// Set the mode (for example, use the on-device model if it's available)
const model = getGenerativeModel(ai, { mode: InferenceMode.PREFER_ON_DEVICE });
// `initializeDeviceModel` must be called:
// (1) after or on an end-user page interaction such as a button click
// and
// (2) before any queries to the model (such as `generateContent()`)
// You may want to `await` this promise if using `ONLY_ON_DEVICE` (see note below).
model.initializeDeviceModel((val) =>
// Example: "Download progress: 72.62%""
console.log(`Download progress: ${Math.round(val*10000) / 100}%`)
);
Etapa 7: enviar uma solicitação de comando a um modelo
Esta seção mostra como enviar vários tipos de entrada para gerar diferentes tipos de saída, incluindo:
- Gerar texto com base em entradas somente de texto
- Gerar texto com base em entradas de texto e imagem (multimodais)
Se você quiser gerar saída estruturada (como JSON ou enums), então use um dos exemplos de "gerar texto" a seguir e adicionalmente configure o modelo para responder de acordo com um esquema fornecido.
Gerar texto com base em entradas somente de texto
| Antes de tentar este exemplo, verifique se você concluiu a seção Introdução deste guia. |
É possível usar
generateContent()
para gerar texto com base em um comando que contém texto:
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call `generateContent` with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
Observe que Firebase AI Logic também oferece suporte ao streaming de respostas de texto usando
generateContentStream
(em vez de generateContent).
Gerar texto com base em entradas de texto e imagem (multimodais)
| Antes de tentar este exemplo, verifique se você concluiu a seção Introdução deste guia. |
É possível usar
generateContent()
para gerar texto com base em um comando que contém arquivos de texto e imagem, fornecendo o
arquivo de cada entradamimeType e o próprio arquivo.
Os tipos de imagem de entrada compatíveis com a inferência no dispositivo são PNG e JPEG.
// Imports + initialization of FirebaseApp and backend service + creation of model instance
// Converts a File object to a Part object.
async function fileToGenerativePart(file) {
const base64EncodedDataPromise = new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result.split(',')[1]);
reader.readAsDataURL(file);
});
return {
inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
};
}
async function run() {
// Provide a text prompt to include with the image
const prompt = "Write a poem about this picture:";
const fileInputEl = document.querySelector("input[type=file]");
const imagePart = await fileToGenerativePart(fileInputEl.files[0]);
// To generate text output, call `generateContent` with the text and image
const result = await model.generateContent([prompt, imagePart]);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
Observe que Firebase AI Logic também oferece suporte ao streaming de respostas de texto usando
generateContentStream
(em vez de generateContent).
O que mais você sabe fazer?
É possível usar várias outras opções e recursos de configuração para suas experiências híbridas:
Recursos ainda não disponíveis para inferência no dispositivo
Nem todos os recursos do SDK da Web estão disponíveis para inferência no dispositivo. Os recursos a seguir ainda não são compatíveis com a inferência no dispositivo (mas geralmente estão disponíveis para inferência baseada na nuvem).
Gerar texto com base em tipos de arquivo de imagem de entrada diferentes de JPEG e PNG
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
ONLY_ON_DEVICEvai gerar um erro.
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
Gerar texto com base em entradas de áudio, vídeo e documentos (como PDFs)
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
ONLY_ON_DEVICEvai gerar um erro.
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
Gerar imagens usando modelos Gemini ou Imagen
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
ONLY_ON_DEVICEvai gerar um erro.
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
Fornecer arquivos usando URLs em solicitações multimodais. É necessário fornecer arquivos como dados inline para modelos no dispositivo.
Conversa multiturno
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
ONLY_ON_DEVICEvai gerar um erro.
- Pode fazer o fallback para o modelo hospedado na nuvem. No entanto, o modo
Streaming bidirecional com a Gemini Live API
Fornecer ferramentas ao modelo para ajudar a gerar a resposta (como chamada de função, execução de código, contexto de URL, Grounding com
Google Search , e Grounding comGoogle Maps )Contar tokens
- Sempre gera um erro. A contagem vai variar entre modelos hospedados na nuvem e no dispositivo, então não há fallback intuitivo.
Monitoramento de IA no console Firebase para inferência no dispositivo.
- Qualquer inferência usando os modelos hospedados na nuvem pode ser monitorada como outras inferências usando o Firebase AI Logic cliente SDK para Web.
Enviar feedback sobre sua experiência com Firebase AI Logic