rohitg00/ai-engineering-from-scratch · error · ValueError

no positive weights match the eval names

Error message

no positive weights match the eval names

What it means

Error "no positive weights match the eval names" thrown in rohitg00/ai-engineering-from-scratch.

Source

Thrown at phases/19-capstone-projects/41-eval-pipeline/code/main.py:662

    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()},
        }


def aggregate(results: Sequence[EvalResult], weights: Optional[Dict[str, float]] = None) -> FinalReport:
    weights = dict(weights or DEFAULT_WEIGHTS)
    # Normalise weights so they sum to 1.
    total_w = sum(weights.get(r.name, 0.0) for r in results)
    if total_w <= 0:
        raise ValueError("no positive weights match the eval names")
    norm_weights = {r.name: weights.get(r.name, 0.0) / total_w for r in results}
    per_eval = {r.name: r.metric for r in results}
    normalised = {r.name: normalise_metric(r.name, r.metric) for r in results}
    agg = sum(normalised[name] * norm_weights[name] for name in normalised)
    return FinalReport(
        per_eval=per_eval,
        normalised=normalised,
        weights=norm_weights,
        aggregate=agg,
        details={r.name: r for r in results},
    )


# ---------------------------------------------------------------------------
# Pretty printer
# ---------------------------------------------------------------------------

View on GitHub (pinned to 39ea8a1c6d)

When it happens

Trigger: Thrown at phases/19-capstone-projects/41-eval-pipeline/code/main.py:662 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/9cd3226ee6a151e0. Report an issue: GitHub.