Few-Shot Prompting: Como Ensinar Padrões à IA com Exemplos
Em vez de explicar com palavras o que você quer, mostre exemplos. Few-shot prompting é a técnica mais confiável para garantir formato, estilo e consistência em saídas de LLMs. Veja a teoria, casos de uso, comparação com fine-tuning e os erros que sabotam o resultado.
Por Vitor Morais
Fundador do MochaLabz ·
Gere prompts otimizados em segundos
Templates com few-shot, role prompting e chain-of-thought para ChatGPT, Claude e Gemini.
Usar gerador de prompts →Few-shot prompting é a técnica de incluir exemplos da tarefa no próprio prompt antes da query final. Apresentado no paper original do GPT-3 (Brown et al., 2020) e chamado também de in-context learning (ICL), é a forma mais confiável de garantir que um LLM produza saída no formato e estilo esperados — sem precisar treinar o modelo. Este guia cobre a teoria, a comparação com zero-shot e fine-tuning, casos de uso reais e os erros que sabotam o resultado.
O espectro: zero-shot, one-shot, few-shot
Os três termos descrevem quantos exemplos você inclui no prompt. Conforme aumenta o número, melhora a consistência da saída — até um ponto de retorno decrescente:
| Critério | Quantos exemplos | Quando usar |
|---|---|---|
| Zero-shot | 0 | Tarefas que o modelo já domina (tradução simples, perguntas factuais) |
| One-shot | 1 | Definir formato específico, mostrar um caso protótipo |
| Few-shot | 2 a 10 | Garantir consistência, ensinar padrão custom, edge cases |
| Many-shot / Fine-tuning | 10+ ou treinamento real | Padrões complexos em escala, milhares de chamadas |
# ZERO-SHOT
"Traduza para inglês: Olá mundo"
# ONE-SHOT
"Traduza para inglês:
Entrada: Bom dia
Saída: Good morning
Entrada: Olá mundo
Saída:"
# FEW-SHOT (3 exemplos)
"Classifique o sentimento:
'Produto incrível!' → positivo
'Atendimento péssimo' → negativo
'Chegou no prazo combinado' → neutro
'Adoro essa marca' →"Por que exemplos funcionam melhor que instruções
LLMs aprenderam a partir de bilhões de exemplos durante o treinamento. Eles operam reconhecendo padrões, não interpretando regras abstratas. Quatro razões pelas quais mostrar é melhor que explicar:
- Concretude: “tom profissional” é ambíguo; três textos profissionais são definição operacional clara.
- Formato implícito: os exemplos comunicam estrutura (pares chave-valor, JSON, bullet, prosa) sem precisar descrever em meta-linguagem.
- Edge cases: um exemplo “difícil” mostra ao modelo como tratar variações que regras textuais esqueceriam.
- In-context learning: o mecanismo de atenção do transformer foi treinado para extrair padrões de sequências — exemplos no contexto ativam esse mecanismo diretamente.
Anatomia de um few-shot prompt eficaz
Quatro elementos compõem um prompt few-shot bem feito:
- Instrução curta inicial: 1–2 linhas que descrevem a tarefa.
- Exemplos consistentes: 3–5 pares entrada/saída no mesmo formato.
- Delimitador claro: setas (→),
:::,---, separação por linhas em branco — qualquer padrão visual. - Query final aberta: a entrada real seguida do delimitador, deixando o modelo completar.
Converta nome completo em e-mail corporativo (primeiro
nome + último sobrenome em minúsculas):
João Silva → joao.silva@empresa.com
Maria Santos Oliveira → maria.oliveira@empresa.com
Pedro de Souza → pedro.souza@empresa.com
Ana Carolina Pereira →Diversidade dos exemplos: a regra mais importante
Exemplos pouco diversos geram saída pouco diversa. Se todos os seus exemplos têm a mesma forma, o modelo vai assumir que todas as entradas devem ter — gerando erros silenciosos em variações:
# ❌ Exemplos sem diversidade
"João" → "João da Silva"
"Pedro" → "Pedro Santos"
"Maria" → "Maria Oliveira"
# Modelo aprende que todo nome precisa virar nome composto.
# Nova entrada "Roberto" pode virar "Roberto Costa" inventado.
# ✅ Exemplos diversos
"João" → "João Silva" (1 nome → 2)
"Mariana Costa" → "Mariana Costa" (já completo, mantém)
"Pedro da Silva Neto" → "Pedro da Silva Neto" (longo, mantém)
"Ana" → "Ana Pereira" (curto, completa)
# Cobre: só primeiro nome, nome composto, nomes longos,
# nomes curtos. Modelo aprende quando intervir e quando não.Casos de uso poderosos
Classificação de intenção
Classifique a intenção do usuário:
'Como mudo minha senha?' → suporte
'Quanto custa o plano premium?' → vendas
'Seu app está fora do ar' → bug
'Adorei a nova feature' → feedback
'Quero cancelar minha conta' → retenção
'Onde vejo minhas faturas?' →Extração estruturada (JSON)
Extraia dados em JSON:
Texto: "João Silva, 32, SP, dev sênior"
JSON: {"nome":"João Silva","idade":32,"uf":"SP","cargo":"dev sênior"}
Texto: "Maria (28) - designer - RJ"
JSON: {"nome":"Maria","idade":28,"uf":"RJ","cargo":"designer"}
Texto: "Pedro Santos, 45 anos, analista em MG"
JSON:Tradução de tom / estilo
Reescreva mensagens de erro em tom informal e empático:
'Erro 500 - servidor indisponível'
→ 'Opa, nosso servidor deu uma soneca. Já estamos acordando ele!'
'Senha incorreta'
→ 'Hmm, essa senha não bateu. Quer tentar de novo?'
'Cartão recusado'
→Geração de variações de produto
Gere headline + descrição curta para anúncio:
PRODUTO: Tênis de corrida Nike Pegasus
HEADLINE: Conforto que vai com você
DESCRIÇÃO: Amortecimento Air Zoom para 5km a 21km. Cabedal respirável.
PRODUTO: Cadeira gamer ergonômica
HEADLINE: Sente bem, jogue melhor
DESCRIÇÃO: Apoio lombar ajustável, braços 4D, suporta até 150kg.
PRODUTO: Fone de ouvido sem fio com cancelamento de ruído
HEADLINE:Few-shot + Chain-of-Thought: combinação poderosa
Para problemas que exigem raciocínio, mostre não só a resposta mas também o raciocínio que leva a ela. O modelo aprende o padrão de pensamento, não apenas o output:
Calcule o desconto final em compras com cupons:
Problema: 'Produto R$100, desconto 20% + cupom adicional 10%'
Raciocínio:
1. Aplica desconto de 20%: 100 - 20 = R$80
2. Aplica cupom de 10% sobre o valor já com desconto: 80 × 0,10 = R$8
3. Preço final: 80 - 8 = R$72
Resposta: R$72
Problema: 'Produto R$250, desconto 30% + frete grátis'
Raciocínio:
1. Aplica desconto de 30%: 250 - 75 = R$175
2. Frete grátis não altera preço do produto
3. Preço final: R$175
Resposta: R$175
Problema: 'Produto R$80, desconto 15% + cashback 5%'
Raciocínio:Veja o guia completo em Chain-of-Thought prompting.
Few-shot vs fine-tuning vs RAG
As três abordagens cobrem necessidades diferentes:
| Critério | Few-shot | Fine-tuning | RAG |
|---|---|---|---|
| O que faz | Exemplos no prompt | Treina o modelo com seus dados | Recupera contexto externo |
| Custo inicial | Zero | Médio a alto | Médio (infra de busca) |
| Custo por chamada | Alto (exemplos consumem tokens) | Baixo | Médio (contexto extra) |
| Latência | Maior (prompt longo) | Menor | Maior (busca + LLM) |
| Atualização de conhecimento | Trocar exemplos | Re-treinar | Atualizar a base |
| Quando usar | Padrão de formato, < 1000 chamadas/dia | Padrão complexo, escala | Conhecimento factual externo |
Quantos exemplos, na prática
| Critério | Exemplos recomendados |
|---|---|
| Transformação simples (formato A → B) | 1–2 |
| Classificação (3–5 categorias) | 3–5 (1–2 por categoria) |
| Extração estruturada (JSON, tabela) | 3–5 |
| Reescrita de tom / estilo | 3–5 |
| Tarefa com variação ou edge cases | 5–10 |
| Padrão muito específico, raro no treino | 8–15 (depois fine-tuning) |
| Geração criativa (story, poem) | 1–3 (mais engessa criatividade) |
O custo escondido: tokens consumidos
Cada exemplo no prompt consome tokens — tanto no input quanto (indiretamente) limitando o espaço para a resposta. Em volume alto, isso vira custo significativo:
# Exemplo: 5 exemplos com média de 50 tokens cada
# = 250 tokens fixos por chamada
# Em 100 000 chamadas/mês:
# 100 000 × 250 = 25 milhões de tokens só de exemplos
# A US$ 5 / 1M tokens (input GPT-5):
# US$ 125/mês só pelos exemplos repetidos
# Solução em escala: prompt caching (Anthropic, OpenAI)
# OU fine-tuning (zero exemplos por chamada)Prompt caching reduz custo em escala
Anthropic e OpenAI suportam prompt caching: o mesmo prefixo (system prompt + exemplos) é cacheado e reutilizado sem cobrar input completo. Reduz custo em 50–90% para system prompts longos. Veja como economizar tokens.
Os 7 erros mais comuns em few-shot
Anti-padrões frequentes
- Exemplos enviesados: só sentimentos positivos → modelo classifica tudo positivo.
- Formato inconsistente entre exemplos: uns com aspas, outros sem; modelo fica confuso.
- Exemplos ambíguos: se você teria dúvida, o modelo também tem.
- Faltar edge case: nenhum exemplo cobre entrada vazia, valor null, formato alternativo.
- Excesso de exemplos: 15 quando 4 bastariam. Custo sobe sem benefício.
- Exemplos longos demais: cada exemplo ocupando 200 tokens engole o contexto disponível.
- Ordem ruim: exemplos mais simples primeiro ajudam o modelo a calibrar antes do complexo.
Implementação prática com APIs
OpenAI (GPT-5)
import OpenAI from 'openai';
const openai = new OpenAI();
const FEW_SHOT_SYSTEM = `Você classifica intenções do usuário.
Categorias possíveis: suporte, vendas, bug, feedback, retenção.
Responda APENAS com a categoria, em minúsculas.`;
const EXAMPLES = [
{ user: 'Como mudo minha senha?', assistant: 'suporte' },
{ user: 'Quanto custa o plano premium?', assistant: 'vendas' },
{ user: 'Seu app está fora do ar', assistant: 'bug' },
{ user: 'Adorei a nova feature', assistant: 'feedback' },
{ user: 'Quero cancelar', assistant: 'retenção' },
];
async function classify(query: string) {
const messages = [
{ role: 'system', content: FEW_SHOT_SYSTEM },
...EXAMPLES.flatMap((ex) => [
{ role: 'user', content: ex.user },
{ role: 'assistant', content: ex.assistant },
]),
{ role: 'user', content: query },
];
const r = await openai.chat.completions.create({
model: 'gpt-5',
messages,
temperature: 0,
});
return r.choices[0].message.content?.trim();
}Anthropic (Claude)
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic();
const SYSTEM = "Você classifica intenções de usuário em uma das " +
"categorias: suporte, vendas, bug, feedback, retenção. " +
"Responda APENAS com a categoria.";
async function classify(query: string) {
const message = await anthropic.messages.create({
model: 'claude-opus-4-7',
max_tokens: 50,
system: SYSTEM,
messages: [
{ role: 'user', content: 'Como mudo minha senha?' },
{ role: 'assistant', content: 'suporte' },
{ role: 'user', content: 'Quanto custa o plano premium?' },
{ role: 'assistant', content: 'vendas' },
{ role: 'user', content: 'Seu app está fora do ar' },
{ role: 'assistant', content: 'bug' },
{ role: 'user', content: query },
],
});
return message.content[0].type === 'text'
? message.content[0].text.trim()
: '';
}Quando migrar para fine-tuning
Os sinais claros de que few-shot virou ineficiente:
- Você precisa de mais de 10 exemplos para chegar à qualidade desejada.
- O mesmo prompt é usado em escala (milhares por dia).
- Latência importa e os exemplos engordam o input.
- Custo dos exemplos repetidos virou linha relevante na fatura.
- Você tem pelo menos 100–500 pares de treinamento de qualidade.
OpenAI, Anthropic e Google Gemini oferecem fine-tuning via API. Custo inicial é maior (treinar custa de US$ 8 a US$ 25 por milhão de tokens treinados) mas a economia operacional vale rápido em volume.
Checklist do few-shot prompt perfeito
- ✅ Instrução curta inicial (1–2 linhas).
- ✅ 3–5 exemplos no formato exato esperado.
- ✅ Exemplos diversos, cobrindo variações reais.
- ✅ Pelo menos 1 edge case incluído.
- ✅ Delimitadores consistentes entre todos os exemplos.
- ✅ Ordem do mais simples ao mais complexo.
- ✅ Temperature baixa (0–0.3) para tarefas determinísticas.
- ✅ Prompt caching ativado se em escala (Anthropic/OpenAI).
- ✅ Migração planejada para fine-tuning quando virar gargalo.
- ✅ Avaliação contínua de qualidade da saída em produção.
Perguntas frequentes
O que é few-shot prompting?+
Few-shot prompting é uma técnica de prompt engineering em que você inclui alguns exemplos da tarefa no próprio prompt antes de pedir a resposta. O modelo “aprende” o padrão pelos exemplos (sem nenhum treinamento real, só processamento contextual) e replica na resposta. É a forma mais confiável de garantir formato, estilo e consistência em saídas de LLMs.
Qual a diferença entre zero-shot, one-shot e few-shot?+
Zero-shot é só a instrução, sem exemplo: “Traduza para inglês: Olá mundo”. One-shot inclui um único exemplo antes da query real. Few-shot inclui múltiplos exemplos (geralmente 2 a 5). Conforme aumenta o número de exemplos, melhora a consistência da saída — até um ponto de retorno decrescente, geralmente entre 3 e 5 exemplos para tarefas comuns.
Quantos exemplos devo usar em few-shot?+
O sweet spot é entre 3 e 5 exemplos para a maioria dos casos. Menos pode ser insuficiente para o modelo captar o padrão; mais geralmente não traz ganho proporcional e consome tokens caros. Para tarefas com muita variação ou edge cases, suba para 5–10. Acima disso, considere fine-tuning — fica mais barato e consistente em escala.
Por que mostrar exemplos funciona melhor que explicar com palavras?+
LLMs foram treinados com bilhões de exemplos e operam reconhecendo padrões — não interpretando regras abstratas. “Use tom profissional” é vago e pode ser interpretado de muitas formas. Mostrar 3 textos profissionais é concreto: o modelo extrai o padrão pelas características comuns aos exemplos. É essencialmente in-context learning sem treinamento real.
Few-shot funciona em modelos pequenos?+
Sim, geralmente melhor que zero-shot mesmo em modelos pequenos. Diferente de Chain-of-Thought (que precisa de modelos grandes para emergir), few-shot é uma capacidade básica de qualquer LLM moderno. Em modelos < 7B, few-shot pode ser a única forma viável de obter consistência.
Posso combinar few-shot com Chain-of-Thought?+
Sim, e é uma das combinações mais poderosas. Mostre exemplos onde o raciocínio passo a passo está explícito antes da resposta final. O modelo aprende tanto o formato esperado quanto o estilo de raciocínio. É a forma mais robusta de prompting para problemas complexos. Veja o guia de chain-of-thought prompting para detalhes.
Quando migrar de few-shot para fine-tuning?+
Quando você precisa de mais de 10 exemplos para chegar à qualidade desejada, ou quando o mesmo padrão é usado milhares de vezes (escala). Fine-tuning tem custo inicial maior (treinar o modelo) mas economiza tokens por chamada (não precisa enviar exemplos toda vez), reduz latência e produz consistência superior. OpenAI, Anthropic e Google oferecem APIs de fine-tuning.
Few-shot com modelos de raciocínio (o3, Claude Thinking) vale a pena?+
Vale, especialmente para garantir formato de saída. Modelos de reasoning fazem chain-of-thought interno, mas continuam beneficiando-se de exemplos para definir estrutura, tom e padrão de output. O ganho relativo pode ser menor que em modelos clássicos, porque o reasoning interno cobre parte do que few-shot faria — mas ainda é prática recomendada quando a forma do output importa.
Continue lendo
Como Economizar Tokens no ChatGPT, Claude e Gemini (Guia 2026)
Reduza o custo das APIs de IA em 40–80% sem perder qualidade. 12 técnicas práticas: compressão, prompt caching, modelos em cascata, RAG, batching, sumarização — com estimativas reais.
Janela de Contexto em IA: Guia Completo (2026) com Limites por Modelo
A janela de contexto define quanto texto um LLM consegue processar de uma vez. Conheça os limites de GPT-5, Claude, Gemini e Llama em 2026, lost-in-the-middle, RAG, chunking e prompt caching.
Chain-of-Thought Prompting: O Guia Completo (2026) com Exemplos
Chain-of-Thought (CoT) é a técnica de prompt que faz LLMs raciocinarem passo a passo, melhorando acurácia em até 60% em problemas complexos. Aprenda zero-shot, few-shot, Self-Consistency e Tree-of-Thoughts, com exemplos para ChatGPT, Claude e Gemini.