MODULO 2.7

๐Ÿ’ป Prompt para Codigo e Dados

Tecnicas especificas para gerar, revisar e debugar codigo e manipular dados estruturados.

6
Topicos
30
Minutos
Intermediario
Nivel
Pratica
Tipo
1

๐Ÿ’ป Prompts para Geracao de Codigo

Gerar codigo com LLMs exige especificidade tecnica. Quanto mais contexto voce fornecer sobre linguagem, framework, estilo e requisitos, melhor sera o resultado. Um prompt vago gera codigo generico; um prompt preciso gera codigo pronto para uso.

๐Ÿ“‹ Anatomia do Prompt de Codigo

Linguagem: Python 3.11+

Framework: FastAPI com Pydantic v2

Estilo: Type hints, docstrings Google style, PEP 8

Tarefa: Criar endpoint POST /users que valida email, salva no DB e retorna 201

Requisitos: Validacao de email, tratamento de duplicatas (409), logging

Testes: Incluir 3 testes com pytest (sucesso, duplicata, email invalido)

๐Ÿ’ก Dica: Contexto Tecnico

Sempre mencione a versao da linguagem e do framework. Codigo que funciona em Python 3.8 pode nao usar features de 3.11 como match/case. Codigo para React 18 pode usar hooks que nao existiam no React 16. O contexto tecnico evita codigo desatualizado.

2

๐Ÿ” Code Review com IA

LLMs sao excelentes revisores de codigo quando voce fornece criterios claros de revisao. Em vez de "revise este codigo", especifique o que procurar: seguranca, performance, legibilidade, bugs potenciais.

๐Ÿ“Š Checklist de Review

  • โ€ขSeguranca: SQL injection, XSS, credenciais hardcoded, validacao de input, autorizacao
  • โ€ขPerformance: Queries N+1, loops desnecessarios, memory leaks, operacoes bloqueantes
  • โ€ขLegibilidade: Nomes de variaveis, funcoes muito longas, complexidade ciclomatica, comentarios
  • โ€ขBugs: Off-by-one, null pointer, race conditions, edge cases nao tratados
  • โ€ขArquitetura: Principio de responsabilidade unica, acoplamento, dependencias circulares

๐Ÿท๏ธ Formato de Feedback

"Para cada problema encontrado, informe:

- [CRITICO] / [MEDIO] / [BAIXO] โ€” severidade

- Linha(s) afetada(s)

- Descricao do problema

- Sugestao de correcao com codigo"

3

๐Ÿ› Debug Assistido

Quando algo nao funciona, a qualidade do prompt de debug determina se voce recebe uma solucao rapida ou sugestoes genericas. Forneca contexto estruturado sobre o bug: o que era esperado, o que aconteceu, o que ja tentou.

๐Ÿ› Template de Bug Report para IA

Comportamento esperado: [O que deveria acontecer]

Comportamento real: [O que esta acontecendo]

Ambiente: [Python 3.11, Ubuntu 22.04, PostgreSQL 15]

Stack trace: [Colar o erro completo]

Codigo relevante: [Trecho minimo que reproduz o bug]

Ja tentei: [Solucoes que nao funcionaram e por que]

๐Ÿ’ก Hipoteses e Solucoes

Peca ao modelo para gerar hipoteses rankeadas: "Liste as 3 causas mais provaveis deste bug, em ordem de probabilidade, com um teste simples para confirmar cada uma." Isso e mais eficiente do que pedir uma unica solucao que pode estar errada.

4

๐Ÿ“Š Manipulacao de Dados

LLMs podem atuar como ferramentas de ETL (Extract, Transform, Load) para pequenos e medios volumes de dados. Eles entendem CSV, JSON, XML e podem transformar entre formatos com instrucoes em linguagem natural.

๐Ÿ“‹ Prompt para Transformacao de Dados

Entrada: CSV com colunas [nome, email, data_nascimento, cidade]

Transformacoes:

1. Padronizar nomes para Title Case

2. Validar formato de email (marcar invalidos)

3. Converter data para formato ISO 8601

4. Normalizar nomes de cidades (acentuacao, abreviacoes)

Saida: JSON com campos validados + campo "erros" para linhas problematicas

โœ… Validacao e Formatos de Saida

  • Sempre valide: Peca ao modelo para reportar dados inconsistentes em vez de silenciosamente ignora-los ou inventa-los.
  • Especifique o schema: "Saida em JSON com campos: nome (string), valido (boolean), erros (array de strings)."
  • Limites de volume: LLMs funcionam bem para 100-500 linhas. Para volumes maiores, peca ao modelo para gerar o script de transformacao em vez de transformar os dados diretamente.
5

๐Ÿ—ƒ๏ธ SQL e Queries com IA

Gerar SQL a partir de linguagem natural e uma das aplicacoes mais praticas de LLMs. A chave e descrever o schema do banco antes de pedir a query โ€” sem schema, o modelo inventa nomes de tabelas e colunas.

๐Ÿ“‹ Prompt de SQL Eficaz

Schema:

- usuarios (id, nome, email, created_at, plano_id)

- pedidos (id, usuario_id, valor, status, created_at)

- planos (id, nome, preco_mensal)

Banco: PostgreSQL 15

Pergunta: Quais usuarios do plano Premium fizeram mais de 5 pedidos no ultimo mes, ordenados por valor total?

Requisitos: Query otimizada, com indices sugeridos se necessario

โš ๏ธ Seguranca em SQL Gerado por IA

Nunca execute SQL gerado por IA diretamente em producao sem revisao. Sempre verifique: a query pode alterar dados (UPDATE/DELETE sem WHERE)? Ha risco de SQL injection se parametros vierem do usuario? A query pode causar full table scan em tabelas grandes? Teste primeiro em ambiente de staging.

6

๐Ÿงช Exercicio: Pipeline de Dados

Crie uma sequencia de prompts para construir um pipeline completo: extrair dados de texto nao estruturado, transformar em JSON e gerar um relatorio.

๐Ÿ“‹ Tarefa do Exercicio

Input: Um email de reclamacao de cliente (texto livre)

Pipeline de 3 etapas:

Etapa 1 โ€” Extracao: Extrair do email: nome do cliente, produto, problema, sentimento (1-5), urgencia (baixa/media/alta)

Etapa 2 โ€” Transformacao: Converter para JSON estruturado com os campos extraidos + timestamp + ID unico

Etapa 3 โ€” Relatorio: Gerar um resumo executivo para o gerente de atendimento com acao recomendada

Dica: cada etapa pode ser um prompt separado, onde a saida de uma alimenta a entrada da proxima. Isso e um padrao de "prompt chaining" aplicado a dados.

๐Ÿ“ Resumo do Modulo

โœ“
Prompts de codigo exigem contexto tecnico โ€” Linguagem, framework, versao, estilo e testes
โœ“
Code review com checklist โ€” Seguranca, performance, legibilidade, bugs com severidade
โœ“
Debug estruturado โ€” Esperado vs real, stack trace, hipoteses rankeadas
โœ“
ETL com LLM โ€” Transformar dados com validacao e schema de saida definido
โœ“
SQL com schema โ€” Sempre descreva o banco antes de pedir a query; revise antes de executar

Proximo Modulo:

2.8 โ€” Otimizacao e Performance: reduza tokens, melhore latencia e maximize qualidade por custo