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:
- 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.
- 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!