rohitg00/ai-engineering-from-scratch · error · ValueError
unknown metric name: {name}
Error message
unknown metric name: {name} What it means
Error "unknown metric name: {name}" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/19-capstone-projects/41-eval-pipeline/code/main.py:636
"exact_match": 0.3,
"token_f1": 0.3,
"judge": 0.2,
}
def normalise_metric(name: str, value: float) -> float:
"""Map a raw metric onto [0, 1]."""
if name == "perplexity":
if value <= 0 or math.isinf(value) or math.isnan(value):
return 0.0
return 1.0 / (1.0 + math.log(max(value, 1.0)))
if name == "exact_match":
return max(0.0, min(1.0, float(value)))
if name == "token_f1":
return max(0.0, min(1.0, float(value)))
if name == "judge":
return max(0.0, min(1.0, float(value) / 5.0))
raise ValueError(f"unknown metric name: {name}")
@dataclass
class FinalReport:
per_eval: Dict[str, float]
normalised: Dict[str, float]
weights: Dict[str, float]
aggregate: float
details: Dict[str, EvalResult] = field(default_factory=dict)
def to_dict(self) -> Dict[str, Any]:
return {
"per_eval": self.per_eval,
"normalised": self.normalised,
"weights": self.weights,
"aggregate": self.aggregate,
"details": {k: v.to_dict() for k, v in self.details.items()},
}View on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/19-capstone-projects/41-eval-pipeline/code/main.py:636 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/916b3e7f04466eea.
Report an issue: GitHub.