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

1"""Evaluation types — concrete implementations for evaluation. 

2 

3Defines evaluation-specific data structures. Contracts types are re-exported 

4from contracts as they're used in protocol signatures. 

5""" 

6 

7from __future__ import annotations 

8 

9from dataclasses import dataclass, field 

10from typing import Any 

11 

12from lexigram.contracts.ai.evaluation import ( 

13 EvaluationDataset, 

14 EvaluationResult, 

15 EvaluationSample, 

16 RunReport, 

17) 

18 

19 

20@dataclass 

21class EvaluationRunContext: 

22 """Context for a single evaluation run. 

23 

24 Holds the dataset, evaluator, and configuration for an evaluation run. 

25 """ 

26 

27 dataset: EvaluationDataset 

28 """The dataset being evaluated.""" 

29 

30 evaluator_name: str 

31 """Name of the evaluator.""" 

32 

33 config: dict[str, Any] = field(default_factory=dict) 

34 """Configuration options for the run.""" 

35 

36 

37@dataclass 

38class BatchEvaluationResult: 

39 """Result of running evaluation on multiple samples. 

40 

41 Contains aggregated results and per-sample details. 

42 """ 

43 

44 total_samples: int 

45 """Total number of samples evaluated.""" 

46 

47 passed_samples: int 

48 """Number of samples that passed the threshold.""" 

49 

50 average_score: float 

51 """Average score across all samples.""" 

52 

53 results: list[EvaluationResult] 

54 """Individual sample results.""" 

55 

56 metadata: dict[str, Any] = field(default_factory=dict) 

57 """Additional metadata about the run.""" 

58 

59 

60__all__ = [ 

61 "BatchEvaluationResult", 

62 "EvaluationDataset", 

63 "EvaluationResult", 

64 "EvaluationRunContext", 

65 "EvaluationSample", 

66 "RunReport", 

67]