Evaluating a C# LLM Eventparser with Promptfoo
Testar código comum é simples. Você chama uma função, obtém um resultado e verifica se ele corresponde à sua expectativa.
Testar LLMs é diferente. Um LLM pode retornar "3 PM" em uma execução e "15:00" em outra. Ambos estão corretos, mas um teste de correspondência exata falhará. Você precisa verificar se a resposta é boa, não se ela é idêntica.
Eu construí um pequeno aplicativo chamado EventParser para testar isso. Ele recebe uma mensagem casual como "Team sync on Friday at 3 PM" e a transforma em dados estruturados.
Veja como você pode testá-lo usando Promptfoo e um fluxo de trabalho de LLM-as-a-judge.
The Setup
O aplicativo usa um único arquivo de prompt: extract_event.txt. O código C# lê este arquivo em tempo de execução. O Promptfoo lê o mesmo arquivo para os testes. Isso garante que você teste o prompt real que seus usuários veem.
The Workflow
Em vez de um humano verificar cada saída, usamos um modelo juiz. Este processo utiliza dois papéis:
• O modelo sob teste: O modelo que fornece a resposta. • O modelo juiz: Um modelo mais rápido e barato que avalia a resposta.
How the Judge Decides
O juiz utiliza uma rubrica. Uma rubrica é uma regra em linguagem natural. Em vez de verificar uma string JSON específica, você diz ao juiz o que a resposta deve conter.
Example Rubric: "A resposta deve extrair o título do evento, dia, hora e local. Não deve adicionar detalhes não mencionados na mensagem."
Testing for Errors
Eu quebrei o prompt intencionalmente ao adicionar uma instrução ruim: "Se a mensagem mencionar café, defina o local como Starbucks."
Quando executei a avaliação, o juiz detectou o erro. A mensagem original não mencionava Starbucks. O modelo alucinou um local. Um teste de correspondência exata deixaria isso passar, mas um modelo juiz detecta erros semânticos.
Why this works:
• Corresponde à realidade: Aceita vários formatos corretos como "3 PM" ou "15:00". • Utiliza regras legíveis: Rubricas em linguagem natural são fáceis de entender. • Detecta bugs de significado: Encontra alucinações e erros de lógica. • É econômico: Você pode usar um modelo barato para avaliar um mais caro.
Essa abordagem faz com que o teste de LLM pareça um teste de software real.
Source: https://dev.to/bigboybamo/evaluating-a-c-llm-eventparser-with-promptfoo-4b87
Optional learning community: https://t.me/GyaanSetuAi
