Prompt Engineering
Zero-shot, few-shot, chain-of-thought, system prompt e técnicas que realmente funcionam.
Definição
Prompt engineering é a prática de estruturar inputs para obter outputs melhores de LLMs. Técnicas principais: Zero-shot (instrução direta sem exemplos), Few-shot (exemplos de input/output no prompt), Chain-of-Thought (pedir raciocínio passo a passo antes da resposta), System prompt (persona e restrições globais), e Role prompting (você é um especialista em X). A qualidade do prompt afeta drasticamente a qualidade da resposta.
Problema → Solução
Problema
Prompts vagos que geram respostas genéricas. Não usar exemplos quando o formato importa. Não pedir chain-of-thought em tarefas de raciocínio. System prompts conflitantes com instruções do usuário.Solução
Ser específico sobre formato, audiência, e restrições. Few-shot para formato consistente. "Pense passo a passo" para raciocínio complexo. System prompt para persona e guardrails. XML tags para estruturar inputs longos. Testar e iterar — bons prompts são desenvolvidos empiricamente.Dica de entrevista
Tip
A técnica mais subestimada: dizer ao modelo o que NÃO fazer. "Não inclua introdução" é tão útil quanto "seja conciso". Para outputs estruturados (JSON, tabelas), sempre mostre um exemplo do formato esperado no prompt — o modelo imita melhor do que segue instruções abstratas.Código
// Zero-shot
"Classifique o sentimento: 'O produto chegou quebrado.' Responda: positivo, negativo, ou neutro."
// Few-shot — formato consistente com exemplos
`Classifique o sentimento:
Entrada: "Adorei! Chegou rápido" → Saída: positivo
Entrada: "Produto ruim, decepcionante" → Saída: negativo
Entrada: "O produto chegou quebrado." → Saída:`
// Chain-of-thought
`Resolva o problema a seguir.
Pense passo a passo antes de dar a resposta final.
Problema: Se tenho 3 APIs chamadas com latência de 200ms cada,
sendo 2 em paralelo e 1 sequencial, qual o tempo total mínimo?`
// System prompt estruturado
const systemPrompt = `
Você é um assistente de code review sênior especializado em React e TypeScript.
COMPORTAMENTO:
- Sempre aponte o problema específico antes de sugerir a solução
- Priorize: segurança > correctness > performance > estilo
- Se o código está correto, diga explicitamente antes de sugerir melhorias
FORMATO DE RESPOSTA:
❌ Problema: [descrição]
✅ Solução: [código corrigido]
📝 Explicação: [por que essa mudança]
RESTRIÇÕES:
- Nunca reescreva código que não tem problema
- Não sugira mudanças de preferência pessoal como se fossem bugs
`Perguntas de entrevista
Q.O que é chain-of-thought prompting?▾
A.Pedir que o modelo mostre o raciocínio antes da resposta final: "Pense passo a passo antes de responder". Aumenta significativamente a precisão em tarefas de raciocínio, matemática e lógica. O modelo que "pensa em voz alta" comete menos erros do que o que vai direto à resposta. Variante: "Antes de responder, liste as considerações relevantes."
Q.Quando usar few-shot vs zero-shot?▾
A.Few-shot quando: o formato de saída é específico (JSON com campos customizados, classificação com categorias suas), a tarefa é ambígua sem exemplos, ou você quer comportamento consistente entre chamadas. Zero-shot quando: a tarefa é comum e bem representada no treino, ou quando você está testando a capacidade base do modelo.
Q.Como estruturar um system prompt eficaz?▾
A.Persona clara: quem o modelo é. Contexto: o que o produto faz. Restrições: o que nunca fazer. Formato de saída preferido. Exemplos de comportamento esperado. Prioridade: system > instruções do usuário > exemplos. Manter conciso — system prompts muito longos diluem as instruções importantes.
Termos relacionados
85/122← →