A família Gemini do Google é uma opção econômica para cargas de trabalho de alto volume, mas os custos ainda crescem quando um app público, projeto paralelo ou hackathon começa a receber milhares de chamadas. O Puter.js muda esse modelo: ele permite chamar modelos Gemini e Gemma no navegador sem chave de API do Google, sem projeto no Google Cloud e sem backend próprio. O uso é cobrado do usuário final via conta Puter; para você, desenvolvedor, a integração não exige faturamento direto.
Resumo
- Puter.js dá acesso ao catálogo Gemini/Gemma sem chave de API do Google, sem Google Cloud e sem servidor.
- Modelos Gemini suportados incluem: 2.5 Pro, 2.5 Flash, 2.5 Flash Lite, 2.0 Flash, 2.0 Flash Lite, 3 Flash Preview e prévias anteriores.
- Modelos Gemma suportados incluem: Gemma 2, 3 e 4 em vários tamanhos.
- A integração mínima usa uma tag
<script>e uma chamada JavaScript. - Streaming, entrada de imagem e parâmetros como
temperaturefuncionam direto no navegador. - O usuário final cobre o uso a partir da conta Puter; você não gerencia cobrança.
- Use Apidog para comparar o fluxo via Puter com a API oficial do Gemini antes de migrar.
Como funciona o modelo “gratuito ilimitado”
Com a API oficial do Gemini, você cria um projeto, gera uma chave, gerencia cotas e paga pelos tokens usados. Com Puter.js, o usuário faz login em uma conta Puter e a chamada é associada ao saldo dele.
Na prática, isso remove três tarefas do seu lado:
- Sem Google Cloud: você não cria projeto, não configura billing e não guarda API keys.
- Sem backend obrigatório: a chamada pode sair diretamente do navegador.
- Sem custo centralizado no seu app: cada usuário usa a própria conta Puter.
A limitação principal: esse fluxo é focado em navegador. Jobs de backend, cron, filas e webhooks ainda devem usar a API oficial do Gemini.
Passo 1: Instale o Puter.js
Para um protótipo ou página estática, inclua o SDK via CDN:
<script src="https://js.puter.com/v2/"></script>
Isso já é suficiente para chamar modelos Gemini no navegador.
Se você estiver empacotando o app com Vite, Next.js, React ou outro bundler, instale via npm:
npm install @heyputer/puter.js
E importe no código:
import { puter } from '@heyputer/puter.js';
Passo 2: Escolha o modelo Gemini/Gemma
Use o ID do modelo no parâmetro model.
| ID do modelo | Quando usar |
|---|---|
google/gemini-2.5-pro |
Raciocínio mais profundo, análise complexa e tarefas com contexto maior |
google/gemini-2.5-flash |
Padrão recomendado para a maioria dos apps de chat, Q&A e geração de conteúdo |
google/gemini-2.5-flash-lite |
Classificação, marcação e tarefas simples de alto volume |
google/gemini-2.0-flash |
Base estável com comportamento conhecido |
google/gemini-3-flash-preview |
Prévia mais recente para testes com baixa latência |
google/gemma-3-27b-it |
Modelo Gemma aberto, ajustado para instruções |
google/gemma-4-31b-it |
Modelo Gemma maior, útil quando você quer testar alternativas abertas |
Para começar, use:
google/gemini-2.5-flash
Troque para google/gemini-2.5-pro apenas quando precisar de raciocínio mais forte. Use as variantes Lite para tarefas simples e repetitivas.
Passo 3: Faça a primeira chamada ao Gemini
Exemplo mínimo em HTML:
<!DOCTYPE html>
<html lang="pt-BR">
<body>
<div id="output"></div>
<script src="https://js.puter.com/v2/"></script>
<script>
async function main() {
const response = await puter.ai.chat(
"Explique aprendizado de máquina em três frases.",
{
model: "google/gemini-2.5-flash"
}
);
document.getElementById("output").innerText = response;
}
main();
</script>
</body>
</html>
Abra o arquivo no navegador. Na primeira execução, o usuário pode precisar fazer login ou criar uma conta Puter. Depois disso, a resposta é exibida na página.
Passo 4: Crie uma função reutilizável
Em vez de chamar puter.ai.chat() diretamente em vários pontos do app, encapsule a chamada:
async function askGemini(prompt, options = {}) {
return puter.ai.chat(prompt, {
model: options.model || "google/gemini-2.5-flash",
temperature: options.temperature ?? 0.7,
});
}
const answer = await askGemini("Gere cinco ideias de nomes para um app de tarefas.");
console.log(answer);
Isso facilita trocar o modelo depois sem refatorar toda a aplicação.
Passo 5: Use streaming para interfaces de chat
Para respostas longas, streaming melhora a experiência do usuário porque o texto aparece conforme é gerado.
<div id="output"></div>
<script src="https://js.puter.com/v2/"></script>
<script>
async function streamAnswer() {
const outputDiv = document.getElementById("output");
const response = await puter.ai.chat(
"Explique a fotossíntese em detalhes.",
{
model: "google/gemini-2.5-flash",
stream: true,
}
);
for await (const part of response) {
if (part?.text) {
outputDiv.innerHTML += part.text;
}
}
}
streamAnswer();
</script>
Cada part.text contém um pedaço da resposta. Em um app real, você pode anexar esse conteúdo ao componente de mensagens do chat.
Passo 6: Envie imagens para o Gemini
O Gemini aceita entrada multimodal. Com Puter.js, você pode passar uma URL de imagem como segundo argumento:
puter.ai.chat(
"O que você vê nesta imagem? Descreva cores, objetos e humor.",
"https://assets.puter.site/doge.jpeg",
{
model: "google/gemini-2.5-flash"
}
).then(response => {
puter.print(response);
});
Casos de uso práticos:
- geração de texto alternativo;
- análise de screenshots;
- QA visual;
- OCR;
- acessibilidade;
- descrição de produtos;
- classificação de imagens.
Para screenshots com muito texto pequeno, teste a qualidade antes de colocar em produção.
Passo 7: Ajuste temperature
Use temperature para controlar o nível de criatividade da resposta.
const response = await puter.ai.chat(
"Escreva um conto curto sobre um chef robô.",
{
model: "google/gemini-2.5-flash",
temperature: 0.8,
}
);
console.log(response);
Regra prática:
-
0.0a0.3: respostas mais determinísticas, úteis para dados estruturados, classificação e conteúdo factual. -
0.4a0.7: equilíbrio para chat e assistentes gerais. -
0.8a1.0: geração mais criativa, útil para brainstorming e escrita.
Passo 8: Mantenha contexto em conversas
Para conversas com múltiplas interações, envie um array de mensagens:
const messages = [
{
role: "user",
content: "Estou construindo um aplicativo Next.js com Postgres."
},
{
role: "assistant",
content: "Entendi. Com o que você precisa de ajuda?"
},
{
role: "user",
content: "Como devo estruturar as migrações?"
},
];
const response = await puter.ai.chat(messages, {
model: "google/gemini-2.5-pro",
});
console.log(response);
Em um app de chat, mantenha esse array no estado da aplicação:
const messages = [];
async function sendMessage(userText) {
messages.push({
role: "user",
content: userText,
});
const answer = await puter.ai.chat(messages, {
model: "google/gemini-2.5-flash",
});
messages.push({
role: "assistant",
content: answer,
});
return answer;
}
Assim, o modelo recebe o histórico completo a cada chamada.
Comparando Gemini com outros modelos no mesmo prompt
O Puter expõe diferentes provedores por uma interface comum. Para comparar modelos, rode o mesmo prompt contra várias opções:
const models = [
"google/gemini-2.5-flash",
"claude-sonnet-4-6",
"gpt-5.5",
"x-ai/grok-4.3",
];
const prompt = "Refatore este componente React para usar hooks: ...";
for (const model of models) {
const start = performance.now();
const response = await puter.ai.chat(prompt, { model });
const elapsed = performance.now() - start;
console.log(`${model}: ${elapsed.toFixed(0)}ms`);
console.log(response);
console.log("---");
}
Use esse teste para avaliar:
- latência;
- qualidade da resposta;
- aderência ao formato esperado;
- consistência entre execuções;
- custo para o usuário final.
Para a maioria dos fluxos de produto, comece com google/gemini-2.5-flash e só troque quando o resultado não atender ao requisito.
O que você obtém e o que você não obtém
Você obtém
- Catálogo Gemini 2.5/2.0/3 Flash e 2.5 Pro.
- Família Gemma aberta.
- Conversas com múltiplas interações.
- Streaming.
- Entrada de imagem por URL.
- Parâmetros como
temperature,max_tokense prompts de sistema. - Integração direta no navegador.
Você pode não obter, dependendo da versão do Puter
- Chamada de função nativa no Gemini.
- Ferramenta de execução de código.
- Fundamentação com Google Search.
- Contexto longo até o teto total de 2M tokens do Gemini.
- Uso limpo no lado do servidor sem contexto de navegador.
- Visibilidade direta dos limites de taxa do Google.
Se você precisa de agentes complexos, execução de código, fundamentação com Search ou integrações estritamente server-side, use a API oficial do Google AI Studio. Para chat, Q&A, geração de conteúdo e análise visual em apps de navegador, Puter.js costuma ser suficiente.
Quando usar Puter vs API oficial do Gemini
Use Puter quando
- Você está criando um app público gratuito e não quer exposição direta a faturamento.
- Você está prototipando e quer evitar configuração de Google Cloud.
- Você quer usar Gemini em site estático, extensão de navegador ou hackathon sem backend.
- Seus usuários aceitam fazer login no Puter.
- A aplicação roda principalmente no navegador.
Use a API oficial do Gemini quando
- Você precisa de chamadas server-side, cron, batch jobs ou webhooks.
- Você precisa de execução de código, fundamentação com Search ou contexto total de 2M tokens.
- Você precisa de contrato, compliance ou controle direto com o Google.
- Você precisa de fine-tuning no seu próprio dataset.
- Seus usuários não podem passar por login no Puter.
Para o tutorial autônomo do Gemini 3 Flash, consulte Como usar a API de prévia do Gemini 3 Flash.
Testando a integração no Apidog
Como as chamadas do Puter acontecem no navegador, você não testa esse fluxo exatamente como uma API de backend. Um padrão prático é separar protótipo e produção:
- Crie uma página estática com Puter.js.
- Passe o prompt por query string ou por um campo de formulário.
- Use essa página para validar UX, login e resposta do modelo.
- No Apidog, modele a API oficial do Gemini para quando você precisar migrar para backend.
- Mantenha ambientes separados para protótipo e produção.
Exemplo de ambientes no Apidog:
-
puter-prototype: aponta para seulocalhostou página estática com Puter.js. -
gemini-prod: aponta parahttps://generativelanguage.googleapis.com/v1.
Baixe o Apidog e configure os dois ambientes na mesma coleção. Assim você consegue comparar o fluxo via navegador com a API oficial antes de decidir a arquitetura final.
Para padrões mais amplos de teste de API, consulte Ferramenta de teste de API para engenheiros de QA.
Outros caminhos gratuitos para LLMs via Puter
O mesmo modelo de “usuário paga” também funciona com outros LLMs expostos pelo Puter:
- Obtenha API Claude gratuita ilimitada
- Obtenha API GPT-5.5 gratuita ilimitada
- Como usar o Grok 4.3 gratuitamente
- Obtenha API DeepSeek gratuita ilimitada
O padrão de implementação é o mesmo: altere a string model e mantenha a mesma chamada puter.ai.chat().
FAQ
É realmente ilimitado ou há um limite oculto?
Do lado do desenvolvedor, sim: você não gerencia uma cota própria nem paga pelos tokens diretamente. O usuário final usa o saldo disponível na conta Puter.
Preciso de uma conta Google ou projeto Google Cloud?
Não. O Puter lida com a chamada ao Google. Você não precisa gerar nem armazenar uma chave de API do Google.
Posso usar isso em produção?
Sim, para aplicações baseadas em navegador. A decisão principal é de produto: seus usuários aceitam fazer login no Puter?
O Gemini via Puter se comporta igual à API oficial?
A saída vem do modelo Gemini, mas a chamada passa pelo Puter. A latência pode ter um salto extra. Para requisitos críticos de latência, compliance ou controle, compare com a API oficial.
E a janela de contexto de 2M tokens do Gemini?
O Puter pode não expor o teto total de 2M tokens em todas as variantes. Para contextos extremamente longos, use a API oficial do Google AI Studio.
Posso usar Gemini via Puter em um bot do Discord ou serviço backend?
Não de forma limpa. O Puter é focado em navegador e assume uma sessão de usuário. Para bots, workers e serviços backend, use a API oficial do Gemini.
Qual modelo devo usar como padrão?
Use google/gemini-2.5-flash. Ele oferece bom equilíbrio entre velocidade e qualidade. Use google/gemini-2.5-pro para tarefas mais complexas e google/gemini-2.5-flash-lite para classificação ou marcação em alto volume.
A geração de imagens com Imagen é suportada?
O Puter expõe geração de imagens por variantes como gpt-image-2 e DALL-E da OpenAI, não Imagen. Veja Obtenha API GPT-5.5 gratuita ilimitada para esse caminho.
Conclusão
Puter.js é uma forma direta de usar Gemini em apps de navegador sem configurar Google Cloud, sem guardar API key e sem centralizar o custo no seu projeto. Para começar, inclua o script, escolha google/gemini-2.5-flash e chame puter.ai.chat().
Para backend, fine-tuning, execução de código, Search grounding ou contexto completo de 2M tokens, a API oficial do Google AI Studio continua sendo o caminho mais adequado. Para protótipos, hackathons, sites estáticos e apps públicos gratuitos, Puter.js reduz bastante o atrito de implementação.
Construa a solicitação uma vez no Apidog, compare o Puter com a API oficial e escolha o fluxo que se encaixa melhor na sua arquitetura.
Top comments (0)