Introdução à Prompt API — IA On-Device no Navegador
A Prompt API é uma interface JavaScript nativa do Chrome que roda inferência de linguagem natural direto no navegador do usuário — sem mandar nada pra servidor nenhum. Disponível a partir do Chrome 148 (maio de 2026), ela expõe o modelo Gemini Nano (~4,27 GB) através do namespace window.LanguageModel. Aceita texto, imagem e áudio como entrada, e sempre devolve texto.
O que é a Prompt API
Em termos práticos: é uma Web API que dá acesso direto a um LLM embutido no Chrome. Diferente de APIs cloud (OpenAI, Gemini API), toda a inferência acontece localmente no dispositivo do usuário. Nenhum dado sai da máquina depois que o modelo foi baixado.
Ela faz parte da iniciativa Built-in AI do Chrome, junto com as APIs Summarizer, Writer, Rewriter, Translator, Language Detector e Proofreader. A diferença? Essas APIs irmãs são especializadas em tarefas específicas. A Prompt API é a superfície de uso geral — você manda prompts em linguagem natural e recebe respostas do modelo.
O namespace é window.LanguageModel, e toda interação passa por sessões criadas com LanguageModel.create().
Por que a Prompt API existe
A motivação é resolver três problemas que APIs cloud de IA impõem a quem desenvolve pra web:
1. Privacidade por design
Com processamento on-device, os dados do usuário nunca saem do navegador. Ponto. Isso elimina preocupações com LGPD, GDPR e regulamentações de dados sensíveis. Nenhum dado vai pro Google nem pra terceiros durante a inferência.
2. Custo zero de inferência
Depois que o modelo é baixado (uma única vez, compartilhado entre origens), não existe custo por token, por requisição ou por usuário. Isso viabiliza IA em produtos freemium, ferramentas offline e aplicações de alto volume sem aquele susto na fatura no fim do mês.
3. Latência mínima
Sem round-trips de rede, a resposta começa a ser gerada na hora. Pra aplicações interativas — autocompletar, classificação em tempo real, assistentes de escrita — a diferença de experiência é gritante.
Como funciona: arquitetura on-device
A Prompt API opera em três camadas:
┌─────────────────────────────────────────────────┐
│ Aplicação Web (JavaScript) │
│ │
│ LanguageModel.create() → session.prompt() │
└──────────────────────┬──────────────────────────┘
│ API JavaScript
┌──────────────────────▼──────────────────────────┐
│ Chrome Browser Engine │
│ │
│ • Gerenciamento de sessões e contexto │
│ • Validação de inputs (texto/imagem/áudio) │
│ • Controle de Permission Policy │
│ • Download e cache do modelo │
└──────────────────────┬──────────────────────────┘
│ Inferência local
┌──────────────────────▼──────────────────────────┐
│ Gemini Nano (~4,27 GB on-device) │
│ │
│ • Processamento via GPU (preferencial) │
│ • Fallback para CPU (16GB RAM + 4 cores) │
│ • Context window gerenciado pelo Chrome │
│ • Modelo compartilhado entre origens │
└─────────────────────────────────────────────────┘
Fluxo de execução
- A aplicação chama
LanguageModel.availability()pra checar se o modelo tá disponível - Na primeira vez, o Chrome baixa o Gemini Nano (~4,27 GB). Esse download é compartilhado entre todas as origens
LanguageModel.create()instancia uma sessão com configurações opcionaissession.prompt()ousession.promptStreaming()envia conteúdo e recebe resposta- O Chrome cuida do contexto, limpa sessões destruídas e gerencia overflow
Gerenciamento do modelo pelo Chrome
O Chrome gerencia o ciclo de vida do Gemini Nano de forma transparente:
- Modelo baixado uma vez, compartilhado entre todas as origens
- Se o espaço livre cair abaixo de 10 GB após o download, o modelo é removido automaticamente
- Quando os requisitos de espaço são satisfeitos de novo, ele é re-baixado
- Atualizações do modelo vêm junto com atualizações do Chrome
Requisitos de hardware
A Prompt API exige hardware mínimo específico pra garantir uma experiência de inferência decente:
| Requisito | Especificação |
|---|---|
| Sistema operacional | Windows 10/11, macOS 13+ (Ventura), Linux, ChromeOS (Chromebook Plus) |
| Armazenamento | Mínimo 22 GB livres no volume do perfil Chrome |
| GPU (recomendado) | Mais de 4 GB de VRAM |
| CPU (alternativa) | 16 GB de RAM + 4 cores ou mais |
| Áudio (input) | Requer GPU obrigatoriamente |
| Rede | Conexão sem limite de dados (só pro download inicial) |
| Chrome | Versão 148 ou superior |
Sistemas operacionais que NÃO funcionam
- Android
- iOS
- ChromeOS em dispositivos que não são Chromebook Plus
Nota sobre armazenamento
O tamanho exato do modelo pode variar com atualizações do Chrome. Pra verificar o tamanho atual, acesse chrome://on-device-internals no navegador.
Idiomas suportados
O Gemini Nano suporta um conjunto limitado de idiomas:
| Código | Idioma |
|---|---|
en | Inglês |
es | Espanhol |
ja | Japonês |
de | Alemão |
fr | Francês |
Português brasileiro não é oficialmente suportado na versão atual. Na prática, o modelo consegue gerar respostas parciais em PT-BR por conta do treinamento multilingual do Gemini Nano — mas sem garantia de qualidade. Confesso que nos meus testes o resultado em português fica inconsistente: às vezes sai surpreendentemente bom, às vezes… nem tanto.
Capacidades da API
Inputs suportados
A Prompt API aceita três tipos de entrada:
- Texto: Strings ou arrays de mensagens com roles (
system,user,assistant) - Imagem:
HTMLImageElement,SVGImageElement,HTMLVideoElement,HTMLCanvasElement,ImageBitmap,OffscreenCanvas,VideoFrame,Blob,ImageData - Áudio:
AudioBuffer,ArrayBufferView,ArrayBuffer,Blob
Output
A saída é sempre texto. Sem geração de imagens, áudio ou vídeo.
Structured Output
A API suporta responseConstraint pra forçar respostas em formato específico:
- JSON Schema (boolean, string, object, array, enum)
- Expressões regulares
Métodos principais
| Método | O que faz |
|---|---|
LanguageModel.availability() | Verifica disponibilidade do modelo |
LanguageModel.create() | Cria uma nova sessão |
LanguageModel.params() | Parâmetros do modelo (só Extensions) |
session.prompt() | Envia prompt e aguarda resposta completa |
session.promptStreaming() | Envia prompt com resposta em streaming |
session.append() | Adiciona mensagens ao contexto |
session.clone() | Clona sessão existente |
session.destroy() | Destrói sessão e libera recursos |
Limitações que você precisa saber
Antes de sair construindo, entenda o que a Prompt API não faz:
- Não funciona em Web Workers — só em janelas top-level e iframes same-origin (ou cross-origin com Permission Policy)
- Não funciona em mobile — Android e iOS estão fora
- Modelo único — você não escolhe; é sempre o Gemini Nano
- Sem fine-tuning — não dá pra customizar o modelo
- Output só texto — nada de geração de imagens, áudio ou código executável
- Interoperabilidade limitada — Chrome e Edge apenas; Firefox e Safari declararam posição mas sem implementação à vista
- Qualidade tem limite — Gemini Nano é um modelo de ~3B parâmetros; pra tarefas complexas, modelos cloud são bem superiores
Casos de uso onde ela brilha
A Prompt API funciona melhor em cenários específicos:
- Classificação de conteúdo em tempo real (spam, tópicos, sentimento)
- Extração de informações estruturadas de texto livre
- Autocompletar e sugestões de escrita
- Resumo de textos curtos
- Tradução rápida entre idiomas suportados
- Análise de imagens (descrições, comparações)
- Transcrição contextual de áudio curto
- Personalização on-device sem expor dados do usuário
Suporte entre navegadores
| Navegador | SO suportado | Status |
|---|---|---|
| Chrome | Windows, macOS, Linux, ChromeOS (Chromebook Plus) | ✅ Suportado (Chrome 148) |
| Edge | Windows, macOS | ✅ Suportado |
| Safari | — | 📋 Posição decidida (sem implementação) |
| Firefox | — | 📋 Posição decidida (sem implementação) |
Próximos passos
Com essa visão geral, você tá pronto pra colocar a mão na massa. Os próximos artigos cobrem:
- Primeiros Passos — Tutorial de setup e primeiro prompt
- Enviando Prompts —
prompt()vspromptStreaming()em detalhe - Sessões — Gerenciamento de contexto e sessões
- Multimodal — Trabalhando com imagens e áudio
- Structured Output — JSON Schema e validação de respostas
Perguntas frequentes
A Prompt API envia dados para o Google?
Não. Depois do download inicial do modelo, toda inferência acontece localmente. Nenhum dado é transmitido pro Google ou pra terceiros durante o uso da API.
Posso usar a Prompt API em português?
Português não está na lista oficial de idiomas suportados (EN, ES, JA, DE, FR). O modelo pode gerar respostas parciais em PT-BR, mas sem garantia de qualidade. Pra produção, use os idiomas oficialmente suportados.
A Prompt API funciona offline?
Sim, depois do download do modelo. A conexão é necessária só pro download inicial do Gemini Nano (~4,27 GB).
Qual a diferença entre a Prompt API e a Gemini API cloud?
A Prompt API roda localmente no dispositivo com Gemini Nano (modelo pequeno, gratuito, privado). A Gemini API cloud usa modelos maiores (Pro, Flash) com qualidade superior, mas precisa de internet, tem custo por token e envia dados pra servidores do Google.
A Prompt API funciona no Firefox ou Safari?
Não. Atualmente, só Chrome 148+ e Edge suportam a Prompt API. Firefox e Safari declararam suas posições mas não implementaram.