Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: comandos com exemplos

Olá pessoal! Tudo bem?

Passando para compartilhar a minha prática na atividade sobre "Comandos com Exemplos" (Zero-shot, One-shot e Few-shot). Achei a teoria excelente, mas o que realmente me impressionou foi ver isso rodando em um cenário real do meu dia a dia de trabalho.

A aula sugere aplicarmos isso em algo que exige um padrão. Como atuo com desenvolvimento de software, decidi testar a capacidade do modelo de classificar logs de erro de uma API de forma padronizada.

Aqui está o comparativo dos meus testes:

  1. O teste Zero-Shot (Sem exemplos)

Primeiro, enviei apenas uma instrução e o dado cru:

Prompt: "Classifique o seguinte erro de log da minha aplicação Java e me diga o nível de severidade e o problema: java.lang.NullPointerException at OrderService.calculateTotal(OrderService.java:45)"

Resultado: O modelo me deu uma resposta enorme. Explicou o que é um NullPointerException, deu dicas de como evitar usando Optional, e escreveu três parágrafos. Foi uma resposta inteligente, mas se eu quisesse automatizar a leitura disso em um sistema de monitoramento, seria péssimo, pois não havia padrão.

  1. O teste Few-Shot (Com exemplos)

Então, decidi usar o Few-Shot Prompting, passando instruções e alguns exemplos do formato exato que eu queria, ensinando o modelo a não ser "tagarela".

Prompt:

Classifique os logs da aplicação extraindo apenas a Severidade (INFO, WARNING ou CRITICAL) e um Resumo curto. Siga estritamente o padrão abaixo, sem adicionar explicações:

Log: "User login failed - wrong password for user john.doe"
Resultado: [INFO] - Falha de autenticação de usuário.

Log: "Connection refused to PostgreSQL database at port 5432"
Resultado: [CRITICAL] - Banco de dados inacessível.

Log: "Payment API took 4000ms to respond"
Resultado: [WARNING] - Lentidão em integração externa.

Log: "java.lang.NullPointerException at OrderService.calculateTotal(OrderService.java:45)"

Resultado:

Resultado da IA:

[CRITICAL] - Erro interno no processamento de pedidos (NullPointerException).

Conclusão e Aprendizado

Foi impressionante! O modelo entendeu perfeitamente a "área de conhecimento" e o formato da saída. A grande lição que tirei dessa aula foi: é muito mais fácil mostrar para a IA o que você quer através de 2 ou 3 exemplos (Few-shot) do que tentar escrever um parágrafo gigante descrevendo regras de formatação.

Para quem está estudando manipulação de dados ou programação, usar o Few-shot para forçar a IA a devolver dados no formato JSON ou CSV é uma técnica que salva muito tempo!

Alguém mais testou o Few-shot com cenários do trabalho? Como foram os resultados de vocês?

Bons estudos!

1 resposta
solução!

Olá, Weriton. Como vai?

Mais uma vez, parabéns pela excelente contribuição! O seu post é uma aula prática perfeita de como aplicar técnicas avançadas de Engenharia de Prompt para resolver problemas reais de engenharia de software, saindo da teoria educacional e indo direto para a otimização de fluxos de trabalho.

A sua análise comparativa entre o Zero-Shot e o Few-Shot traduz perfeitamente a essência dessas abordagens. Quando o modelo opera em Zero-Shot, ele tenta ser o mais prestativo e explicativo possível (o que você chamou de "tagarela"). Já no Few-Shot, os exemplos atuam como um limitador de escopo e um modelador de formato, mostrando para a IA o ritmo, o tamanho e a estrutura exata que a resposta deve ter.

Indo Além: O Próximo Passo com Structured Outputs

Como você mencionou muito bem na sua conclusão, usar o Few-Shot Prompting para forçar a IA a devolver dados formatados em JSON ou CSV é uma técnica que economiza muito tempo e permite integrar modelos de IA diretamente em nossas aplicações ou scripts de monitoramento.

Para complementar os seus testes e elevar ainda mais o nível dessa automação, vale a pena conhecer um conceito que anda lado a lado com o Few-Shot no desenvolvimento profissional: os Structured Outputs (Saídas Estruturadas).

Quando você precisa que o modelo gere dados para o seu sistema consumir através de código, você pode incluir no seu prompt a definição de um esquema rígido (como um JSON Schema). Veja um exemplo de como estender o seu prompt de logs para esse cenário:

Classifique os logs da aplicação extraindo a severidade e o resumo curto. 
Sua resposta deve ser estritamente um objeto JSON válido, sem blocos de código markdown ou explicações externas, seguindo o esquema abaixo:

{
  "severidade": "INFO" | "WARNING" | "CRITICAL",
  "componente": "string",
  "resumo": "string"
}

Log: "java.lang.NullPointerException at OrderService.calculateTotal(OrderService.java:45)"
Resposta:

Ao combinar os exemplos (Few-Shot) com a definição clara das chaves do JSON, a assertividade do modelo chega perto dos 100%. Isso permite que o seu script pegue a resposta da IA, faça um JSON.parse() direto e envie um alerta automatizado para o Slack ou Discord do time de desenvolvimento caso a chave "severidade" seja "CRITICAL".

Obrigado por compartilhar testes de tão alto nível com a comunidade do fórum. Seus posts enriquecem demais o aprendizado de todos!

Espero que possa ter lhe ajudado!