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