Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-evaluation/src/lexigram/ai/evaluation/constants.py: 93%

28 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Evaluation constants — error codes, metric names, and span names. 

2 

3Centralised string constants used across the evaluation package to prevent 

4magic-string drift between modules. 

5""" 

6 

7from __future__ import annotations 

8 

9import importlib.metadata 

10 

11try: 

12 __version__: str = importlib.metadata.version("lexigram-ai-evaluation") 

13except ImportError: 

14 __version__ = "0.0.0" 

15 

16# --------------------------------------------------------------------------- 

17# Default values 

18# --------------------------------------------------------------------------- 

19 

20DEFAULT_THRESHOLD: float = 0.8 

21DEFAULT_EMBEDDING_MODEL: str = "text-embedding-3-small" 

22MAX_RETRIES: int = 3 

23DEFAULT_TIMEOUT_SECONDS: int = 30 

24 

25# --------------------------------------------------------------------------- 

26# Environment configuration 

27# --------------------------------------------------------------------------- 

28 

29ENV_PREFIX: str = "LEX_AI_EVALUATION__" 

30ENV_NESTED_DELIMITER: str = "__" 

31 

32# --------------------------------------------------------------------------- 

33# Error codes 

34# --------------------------------------------------------------------------- 

35 

36ERROR_DATASET_ERROR: str = "DATASET_ERROR" 

37ERROR_EVALUATION_CONFIG: str = "EVALUATION_CONFIG_ERROR" 

38ERROR_EVALUATION_FAILED: str = "EVALUATION_FAILED" 

39ERROR_EVALUATOR_NOT_FOUND: str = "EVALUATOR_NOT_FOUND" 

40ERROR_HARNESS_ERROR: str = "HARNESS_ERROR" 

41ERROR_TIMEOUT: str = "EVALUATION_TIMEOUT" 

42 

43# --------------------------------------------------------------------------- 

44# Metric names 

45# --------------------------------------------------------------------------- 

46 

47METRIC_DATASET_SAMPLES: str = "evaluation.dataset.samples" 

48METRIC_EVALUATION_DURATION_MS: str = "evaluation.duration_ms" 

49METRIC_EVALUATION_PASSED: str = "evaluation.passed" 

50METRIC_EVALUATION_SCORE: str = "evaluation.score" 

51METRIC_EVALUATIONS_ERRORS: str = "evaluation.errors" 

52METRIC_EVALUATIONS_TOTAL: str = "evaluation.total" 

53 

54# --------------------------------------------------------------------------- 

55# Span names 

56# --------------------------------------------------------------------------- 

57 

58SPAN_DATASET_LOAD: str = "evaluation.dataset.load" 

59SPAN_EVALUATE: str = "evaluation.evaluate" 

60SPAN_HARNESS_RUN: str = "evaluation.harness.run" 

61 

62__all__ = [ 

63 "DEFAULT_EMBEDDING_MODEL", 

64 "DEFAULT_THRESHOLD", 

65 "DEFAULT_TIMEOUT_SECONDS", 

66 "ENV_NESTED_DELIMITER", 

67 "ENV_PREFIX", 

68 "ERROR_DATASET_ERROR", 

69 "ERROR_EVALUATION_CONFIG", 

70 "ERROR_EVALUATION_FAILED", 

71 "ERROR_EVALUATOR_NOT_FOUND", 

72 "ERROR_HARNESS_ERROR", 

73 "ERROR_TIMEOUT", 

74 "MAX_RETRIES", 

75 "METRIC_DATASET_SAMPLES", 

76 "METRIC_EVALUATIONS_ERRORS", 

77 "METRIC_EVALUATIONS_TOTAL", 

78 "METRIC_EVALUATION_DURATION_MS", 

79 "METRIC_EVALUATION_PASSED", 

80 "METRIC_EVALUATION_SCORE", 

81 "SPAN_DATASET_LOAD", 

82 "SPAN_EVALUATE", 

83 "SPAN_HARNESS_RUN", 

84 "__version__", 

85]