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]