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

20 statements  

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

1"""GuardProtocol constants — thresholds, error codes, and metric names.""" 

2 

3from __future__ import annotations 

4 

5import importlib.metadata 

6 

7try: 

8 __version__: str = importlib.metadata.version("lexigram-ai-guard") 

9except ImportError: 

10 __version__ = "0.0.0" 

11 

12 

13# -- Environment Variable Prefixes ------------------------------------------- 

14ENV_PREFIX: str = "LEX_AI_GUARD__" 

15"""Environment variable prefix for Guard configuration.""" 

16 

17ENV_NESTED_DELIMITER: str = "__" 

18"""Delimiter for nested env var keys.""" 

19 

20 

21# --------------------------------------------------------------------------- 

22# Default safety thresholds 

23# --------------------------------------------------------------------------- 

24 

25# Default confidence threshold above which an input is flagged as unsafe. 

26DEFAULT_DETECTION_THRESHOLD: float = 0.85 

27 

28# Maximum allowed prompt length in characters before truncation. 

29DEFAULT_MAX_INPUT_LENGTH: int = 32_768 

30 

31# Default maximum output length in characters. 

32DEFAULT_MAX_OUTPUT_LENGTH: int = 16_384 

33 

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

35# Error codes 

36# --------------------------------------------------------------------------- 

37 

38ERROR_INPUT_GUARD_VIOLATION: str = "LEX_GUARD_001" 

39ERROR_OUTPUT_GUARD_VIOLATION: str = "LEX_GUARD_002" 

40ERROR_GUARD_CONFIG_INVALID: str = "LEX_GUARD_003" 

41 

42# --------------------------------------------------------------------------- 

43# MetricProtocol names 

44# --------------------------------------------------------------------------- 

45 

46METRIC_GUARD_CHECKS_TOTAL: str = "ai.guard.checks.total" 

47METRIC_GUARD_VIOLATIONS_TOTAL: str = "ai.guard.violations.total" 

48METRIC_GUARD_CHECK_DURATION_MS: str = "ai.guard.check.duration_ms" 

49 

50__all__ = [ 

51 "DEFAULT_DETECTION_THRESHOLD", 

52 "DEFAULT_MAX_INPUT_LENGTH", 

53 "DEFAULT_MAX_OUTPUT_LENGTH", 

54 "ENV_NESTED_DELIMITER", 

55 "ENV_PREFIX", 

56 "ERROR_GUARD_CONFIG_INVALID", 

57 "ERROR_INPUT_GUARD_VIOLATION", 

58 "ERROR_OUTPUT_GUARD_VIOLATION", 

59 "METRIC_GUARD_CHECKS_TOTAL", 

60 "METRIC_GUARD_CHECK_DURATION_MS", 

61 "METRIC_GUARD_VIOLATIONS_TOTAL", 

62 "__version__", 

63]