Inteligência Artificial

Engenharia de prompts para código: como pedir para a IA e obter resultados muito melhores

Engenharia de prompts para código: como pedir para a IA e obter resultados muito melhores

A qualidade do código que uma IA gera é diretamente proporcional à qualidade do prompt que você fornece. Desenvolvedores que obtêm resultados medíocres de ferramentas como ChatGPT, Claude ou Cursor frequentemente não têm um problema de modelo — têm um problema de prompt. A diferença entre “crie uma função de login” e um prompt bem construído pode ser a diferença entre um código inseguro e genérico e uma implementação correta, tipada, com tratamento de erro e alinhada com o stack do seu projeto.

O princípio fundamental: especificidade

Prompts vagos geram código genérico. Quanto mais contexto e restrições você fornecer, mais o código gerado se aproxima do que você realmente precisa. Compare: “crie uma API de autenticação” vs “crie um endpoint POST /auth/login em Express.js com TypeScript que recebe email e senha no body, valida com zod, busca o usuário no PostgreSQL via Prisma, verifica a senha com bcrypt, e retorna um JWT assinado com expiração de 24h. Trate erros de credenciais inválidas com 401 e erros internos com 500. Use middleware de rate limiting de 5 tentativas por minuto por IP”. A diferença no output é enorme.

Forneça o stack e as convenções

Sempre mencione: linguagem e versão, framework, bibliotecas relevantes, convenções de código do projeto (nomes em inglês ou português? async/await ou promises? tipagem estrita?), e estrutura esperada do output (apenas a função? o arquivo completo? com imports?). Uma frase como “estou usando Node.js 20 com TypeScript estrito, Express 4, Prisma 5 com PostgreSQL, e jest para testes. Sigo as convenções de Clean Code” dá à IA o contexto para gerar código que se encaixa no seu projeto em vez de código genérico que precisa de adaptações.

Técnicas avançadas de prompting

Chain of thought: Para problemas complexos, peça à IA para “pensar passo a passo antes de gerar o código”. Isso força o modelo a raciocinar sobre o problema antes de implementar, reduzindo erros lógicos. Few-shot: Forneça exemplos do padrão esperado — “nossos endpoints seguem esse padrão: [exemplo]”. O modelo imita o padrão nos novos exemplos. Critique e revise: Após gerar código, peça “revise esse código procurando: problemas de segurança, falta de tratamento de erro, performance, e aderência às boas práticas”. O modelo frequentemente encontra problemas no próprio código que gerou quando explicitamente solicitado a revisar.

Prompts para debugging específico

Em vez de “esse código não funciona, me ajude”, forneça: o código com problema, a mensagem de erro completa (stack trace incluído), o comportamento esperado, o comportamento observado, e o que você já tentou. “Esse código lança ‘TypeError: Cannot read properties of undefined (reading ‘id’)’ na linha 23 quando o array de usuários está vazio. Esperava que o map retornasse array vazio sem erro. Já tentei adicionar verificação de null mas o erro persiste.” Esse nível de detalhe permite diagnóstico preciso em vez de sugestões genéricas.

Quando a IA erra: estratégias de correção

Quando o código gerado está errado, não apenas peça “corrija”. Descreva especificamente o que está errado: “o código gera todos os desconto incorretamente para valores entre R$100 e R$200 — está aplicando 15% quando deveria aplicar 10%”. Se o modelo continua errando após 2-3 tentativas na mesma conversa, comece uma nova conversa (sem o contexto da conversa que não funcionou) com um prompt diferente. Às vezes o modelo se “prende” em uma abordagem equivocada e a nova conversa permite uma abordagem fresca. Para problemas realmente difíceis, tente um modelo diferente — Claude, GPT-4, e Gemini têm pontos fortes distintos e um pode resolver o que o outro não consegue.

Tem um projeto em mente?

Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.

Resposta rápida Orçamento sem compromisso +100 projetos entregues
Compartilhar: