R
Interview Deckreact · next.js · senior/staff
0·0·122
IA Básico

Prompt Engineering

Zero-shot, few-shot, chain-of-thought, system prompt e técnicas que realmente funcionam.

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
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.
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.
// 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
`
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.
85/122← →