Source code for eval_framework.metrics.completion.accuracy_completion
from eval_framework.metrics.base import BaseMetric, MetricResult
from eval_framework.shared.types import Completion
[docs]
class AccuracyCompletion(BaseMetric[Completion]):
NAME = "Accuracy Completion"
[docs]
def calculate(self, response: Completion) -> list[MetricResult]:
if response.error is not None:
return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=response.error)]
ground_truths = response.ground_truth_list
is_correct = any(response.completion == gt for gt in ground_truths)
return [
MetricResult(metric_name=self.NAME, value=float(is_correct), higher_is_better=True, error=response.error)
]