Ia
Prompt Engineering
Prompt Engineering e a arte de criar instrucoes eficazes para modelos de linguagem. Um bom prompt pode fazer a diferenca entre uma resposta util e uma irrelevante.
Principios Fundamentais
1. Seja Especifico
# Ruim
"Escreva sobre Python"
# Bom
"Escreva um guia de 500 palavras sobre list comprehensions em Python,
incluindo 3 exemplos praticos de uso no dia a dia."2. Forneca Contexto
# Ruim
"Como resolver esse erro?"
# Bom
"Sou um desenvolvedor Python trabalhando com FastAPI.
Estou recebendo o erro 'TypeError: Object of type datetime is not JSON serializable'
ao retornar uma resposta com um campo de data. Como resolver?"3. Defina o Formato de Saida
"Liste 5 frameworks Python para APIs REST.
Formato:
- Nome: [nome do framework]
- Vantagem: [principal vantagem]
- Caso de Uso: [quando usar]"Tecnicas Avancadas
Role Prompting
Defina uma persona para o modelo:
"Voce e um arquiteto de software senior com 15 anos de experiencia
em sistemas distribuidos. Responda de forma tecnica mas acessivel."Few-Shot Learning
Forneca exemplos do que voce espera:
"Classifique o sentimento dos textos como POSITIVO, NEGATIVO ou NEUTRO.
Exemplos:
Texto: 'Adorei o produto, superou minhas expectativas!'
Sentimento: POSITIVO
Texto: 'Chegou quebrado e o suporte nao ajudou.'
Sentimento: NEGATIVO
Texto: 'O produto e ok, faz o que promete.'
Sentimento: NEUTRO
Agora classifique:
Texto: 'Entrega rapida mas a embalagem estava amassada.'
Sentimento:"Chain of Thought (CoT)
Peca para o modelo mostrar o raciocinio:
"Resolva o problema passo a passo, explicando cada etapa do raciocinio
antes de dar a resposta final.
Problema: Uma loja tem 3 funcionarios. Cada um atende 8 clientes por hora.
Se a loja funciona 10 horas por dia, quantos clientes sao atendidos por semana
(6 dias)?"Self-Consistency
Peca multiplas respostas e compare:
"Gere 3 solucoes diferentes para este problema.
Para cada solucao, liste pros e contras.
Ao final, recomende a melhor opcao justificando."Estrutura de System Prompts
Template Completo
# IDENTIDADE
Voce e [papel/persona].
# CONTEXTO
[Informacoes relevantes sobre o dominio/situacao]
# OBJETIVO
[O que o modelo deve fazer]
# RESTRICOES
- [Restricao 1]
- [Restricao 2]
# FORMATO DE SAIDA
[Como a resposta deve ser estruturada]
# EXEMPLOS (opcional)
[Exemplos de entrada/saida esperada]Exemplo Pratico
# IDENTIDADE
Voce e um revisor de codigo especializado em seguranca.
# CONTEXTO
Estou desenvolvendo uma API REST em Node.js com Express.
A API lida com dados sensiveis de usuarios.
# OBJETIVO
Revise o codigo fornecido identificando vulnerabilidades de seguranca.
# RESTRICOES
- Foque apenas em problemas de seguranca
- Nao sugira refatoracoes de estilo
- Priorize por severidade (CRITICA, ALTA, MEDIA, BAIXA)
# FORMATO DE SAIDA
Para cada vulnerabilidade:
1. Linha do codigo
2. Tipo de vulnerabilidade
3. Severidade
4. Descricao do risco
5. Correcao sugeridaPrompts para Codigo
Geracao de Codigo
"Implemente uma funcao em Python que:
- Nome: validate_email
- Entrada: string com email
- Saida: booleano indicando se e valido
- Requisitos:
- Use regex
- Valide formato basico (usuario@dominio.extensao)
- Retorne False para strings vazias ou None
- Inclua docstring e type hints"Debugging
"Analise o codigo abaixo e identifique o bug.
[codigo]
Contexto:
- Erro observado: [descricao do erro]
- Comportamento esperado: [o que deveria acontecer]
- Ambiente: Python 3.11, FastAPI 0.104
Forneca:
1. Causa do bug
2. Correcao
3. Explicacao de por que funciona"Code Review
"Faca uma revisao deste codigo considerando:
1. Boas praticas
2. Performance
3. Legibilidade
4. Tratamento de erros
5. Seguranca
Para cada ponto, indique:
- Status: OK / ATENCAO / PROBLEMA
- Linha(s) afetada(s)
- Sugestao de melhoria (se aplicavel)
[codigo]"Prompts para Documentacao
Geracao de README
"Gere um README.md para este projeto:
- Nome: [nome]
- Linguagem: [linguagem]
- Descricao: [breve descricao]
Inclua secoes:
1. Descricao do projeto
2. Pre-requisitos
3. Instalacao
4. Uso basico (com exemplos)
5. Configuracao
6. Contribuicao
7. Licenca"Documentacao de API
"Documente este endpoint de API no formato OpenAPI/Swagger:
[codigo do endpoint]
Inclua:
- Descricao
- Parametros (path, query, body)
- Respostas possiveis (200, 400, 401, 500)
- Exemplos de request/response"Anti-Patterns a Evitar
1. Prompts Vagos
# Evite
"Me ajude com codigo"
# Prefira
"Preciso de ajuda para implementar autenticacao JWT em FastAPI.
Quero uma funcao que valide tokens e extraia o user_id."2. Muitas Instrucoes de Uma Vez
# Evite
"Crie um sistema completo de e-commerce com usuarios, produtos,
carrinho, checkout, pagamentos, notificacoes..."
# Prefira
Divida em tarefas menores e sequenciais.3. Assumir Conhecimento Implicito
# Evite
"Use aquele padrao que conversamos"
# Prefira
"Use o padrao Repository para a camada de dados"Tecnicas de Otimizacao
1. Iteracao
Comece simples e refine:
Iteracao 1: "Explique Docker"
Iteracao 2: "Explique Docker para iniciantes"
Iteracao 3: "Explique Docker para iniciantes usando analogias do dia a dia"2. Delimitadores
Use delimitadores claros:
"Traduza o texto entre <texto> e </texto> para ingles.
<texto>
Seu texto aqui
</texto>"3. Output Estruturado
"Responda APENAS em JSON valido com a estrutura:
{
\"resposta\": \"string\",
\"confianca\": \"alta|media|baixa\",
\"fontes\": [\"string\"]
}"