fastrag.benchmark.results#
What one benchmark run produced, and how it is saved and reloaded.
Classes
|
The outcome of one |
|
One sample's outcome: its scores, and enough detail to diagnose them. |
|
How a run's samples broke down — never collapsed into one pass/fail count. |
- class fastrag.benchmark.results.StatusCounts(successful, errored, incomplete)[source]#
Bases:
objectHow a run’s samples broke down — never collapsed into one pass/fail count.
A question that errored is never scored as zero: it is tallied in
errored, not folded intoincompleteorsuccessful.
- class fastrag.benchmark.results.SampleResult(question, status, scores, answer=None, retrieved_ids=<factory>, retrieved_uris=<factory>, latency_ms=0.0, error=None)[source]#
Bases:
objectOne sample’s outcome: its scores, and enough detail to diagnose them.
- Parameters:
- class fastrag.benchmark.results.BenchmarkResult(name, created_at, status, summary, samples, duration_s, higher_is_better=<factory>)[source]#
Bases:
objectThe outcome of one
run().nameis the only identity a result carries — deliberately no serialized pipeline configuration, since the benchmark script is already the readable, version-controlled record of what was run. Keep the script and itsresults/directory together, and name results after their configuration.- Parameters:
name (str)
created_at (datetime)
status (StatusCounts)
summary (dict[str, DistributionSummary])
samples (list[SampleResult])
duration_s (float)
- status: StatusCounts#
- summary: dict[str, DistributionSummary]#
- samples: list[SampleResult]#
- higher_is_better: dict[str, bool]#
Per metric name, whether a higher score is better. Read by
best(), which is the only place a result file’s meaning — not just its numbers — is needed after theMetricobjects that ran are gone.
- classmethod load(path)[source]#
Read a result written by
save().- Raises:
ConfigurationError –
pathis not a result file this version of the package can read.- Parameters:
- Return type: