You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dd910e4
Browse filesBrowse the repository at this point in the historyBrowse files
refactor(eval): move aggregators to ExactMatch, revert on Binary/Multiclass
Design change per stakeholder decision: aggregators (Precision / Recall /
F-score) attach to ExactMatch evaluators, not to the classification
evaluators. Binary and Multiclass classifiers stay on their original
shipped design (Radu Mocanu's PR #1403) — they will be deleted in a
future pass and shouldn't accumulate aggregator plumbing meanwhile.
Additionally, ``classes`` is no longer carried on individual aggregator
specs — it lives once on the parent evaluator's config, shared across
every aggregator on that evaluator. Kills the whole class of "aggregator
classes differ from evaluator classes" bugs (silent overwrite, superset
validation, disambiguation branches).
SDK changes:
* ExactMatchEvaluatorConfig gains ``classes: list[str] | None`` and
``aggregators: list[AggregatorSpec] | None`` with a validator that
requires classes when aggregators is set.
* PrecisionAggregatorSpec / RecallAggregatorSpec / FScoreAggregatorSpec
no longer carry ``classes`` — only ``averaging`` and (for fscore)
``f_value``.
* BaseDatasetEvaluator / ClassificationDatasetEvaluator / build_dataset_evaluator
take classes as an explicit argument passed at construction/dispatch time.
* Runtime walks ExactMatchEvaluatorConfig for aggregators (was Binary +
Multiclass configs).
* Binary + Multiclass evaluator configs and their JSON schemas revert to
the shape shipped in origin/main — no aggregators field, no
cross-check validator.
* Sample projects' evaluator JSON configs drop their aggregator entries;
they remain as pure classifier demos.
* Tests updated: math tests pass classes to build_dataset_evaluator,
round-trip test expects spec without classes, integration tests use
ExactMatch as the source evaluator, deleted the Binary/Multiclass
aggregator-validator test class.
* Regenerated all evaluator_types JSON schemas from pydantic models.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
0 commit comments