А вот это интересное решение - загнать харнесс в vitest контракт для тестовю
Вот прям на днях было что-то когда true/false не работало надо было по score оценивать. Но уже не помню 🙁
Ну и под пи есть 🙂
https://vitest-evals.sentry.dev/docs/harnesses/pi-ai/
import { expect } from "vitest";
import {
createJudge,
describeEval,
type JudgeContext,
} from "vitest-evals";
import { qaHarness } from "./qaHarness";
const CapitalJudge = createJudge(
"CapitalJudge",
async ({ output }: JudgeContext<string, string>) => ({
score: output.toLowerCase().includes("paris") ? 1 : 0,
}),
);
describeEval("capital questions", { harness: qaHarness }, (it) => {
it("knows the capital of France", async ({ run }) => {
const result = await run("What is the capital of France?");
expect(result.output).toContain("Paris");
await expect(result).toSatisfyJudge(CapitalJudge);
});
});