Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-evaluation/src/lexigram/ai/evaluation/types.py: 100%
25 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Evaluation types — concrete implementations for evaluation.
3Defines evaluation-specific data structures. Contracts types are re-exported
4from contracts as they're used in protocol signatures.
5"""
7from __future__ import annotations
9from dataclasses import dataclass, field
10from typing import Any
12from lexigram.contracts.ai.evaluation import (
13 EvaluationDataset,
14 EvaluationResult,
15 EvaluationSample,
16 RunReport,
17)
20@dataclass
21class EvaluationRunContext:
22 """Context for a single evaluation run.
24 Holds the dataset, evaluator, and configuration for an evaluation run.
25 """
27 dataset: EvaluationDataset
28 """The dataset being evaluated."""
30 evaluator_name: str
31 """Name of the evaluator."""
33 config: dict[str, Any] = field(default_factory=dict)
34 """Configuration options for the run."""
37@dataclass
38class BatchEvaluationResult:
39 """Result of running evaluation on multiple samples.
41 Contains aggregated results and per-sample details.
42 """
44 total_samples: int
45 """Total number of samples evaluated."""
47 passed_samples: int
48 """Number of samples that passed the threshold."""
50 average_score: float
51 """Average score across all samples."""
53 results: list[EvaluationResult]
54 """Individual sample results."""
56 metadata: dict[str, Any] = field(default_factory=dict)
57 """Additional metadata about the run."""
60__all__ = [
61 "BatchEvaluationResult",
62 "EvaluationDataset",
63 "EvaluationResult",
64 "EvaluationRunContext",
65 "EvaluationSample",
66 "RunReport",
67]