grade method
Future<Score>
grade({
- required Trial trial,
- required Transcript transcript,
- required Outcome outcome,
- required EvalContext context,
- ReferenceSolution? referenceSolution,
override
Compute a score for one trial.
Implementation
@override
Future<Score> grade({
required Trial trial,
required Transcript transcript,
required Outcome outcome,
required EvalContext context,
ReferenceSolution? referenceSolution,
}) async {
final assertions = await computeAssertions(
trial: trial,
transcript: transcript,
outcome: outcome,
context: context,
referenceSolution: referenceSolution,
);
final passedCount = assertions.where((a) => a.passed).length;
final value = assertions.isEmpty ? 0.0 : passedCount / assertions.length;
return Score(
graderName: name,
value: value,
passed: value >= passThreshold,
assertions: assertions,
rationale: buildRationale(assertions),
);
}