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

28 statements  

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

1"""Constants for lexigram-ai-memory.""" 

2 

3from __future__ import annotations 

4 

5import importlib.metadata 

6 

7try: 

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

9except ImportError: 

10 __version__ = "0.0.0" 

11 

12 

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

14 

15ENV_PREFIX: str = "LEX_AI_MEMORY__" 

16ENV_NESTED_DELIMITER: str = "__" 

17 

18# -- Working Memory Defaults ------------------------------------------------- 

19 

20DEFAULT_SYSTEM_PROMPT_TOKENS: int = 512 

21DEFAULT_RECENT_TURNS_FRACTION: float = 0.40 

22DEFAULT_EPISODIC_FRACTION: float = 0.30 

23DEFAULT_SEMANTIC_FRACTION: float = 0.20 

24DEFAULT_TOOL_DESC_FRACTION: float = 0.10 

25DEFAULT_MAX_RECENT_TURNS: int = 20 

26 

27# -- Episodic Memory Defaults ------------------------------------------------ 

28 

29DEFAULT_EPISODIC_TOP_K: int = 10 

30DEFAULT_RECENCY_WEIGHT: float = 0.3 

31DEFAULT_IMPORTANCE_WEIGHT: float = 0.2 

32DEFAULT_RELEVANCE_WEIGHT: float = 0.5 

33DEFAULT_EPISODIC_TTL_SECONDS: int = 0 # 0 = no expiry 

34 

35# -- Semantic Memory Defaults ------------------------------------------------ 

36 

37DEFAULT_MIN_CONFIDENCE: float = 0.5 

38DEFAULT_MAX_FACTS_PER_ENTITY: int = 100 

39 

40# -- Consolidation Defaults -------------------------------------------------- 

41 

42DEFAULT_CONSOLIDATION_INTERVAL_S: float = 3600.0 

43DEFAULT_CONSOLIDATION_AGE_THRESHOLD_HOURS: float = 24.0 

44DEFAULT_CONSOLIDATION_IMPORTANCE_PRUNE: float = 0.1 

45DEFAULT_CONSOLIDATION_BATCH_SIZE: int = 100 

46 

47# -- Root Config Defaults ---------------------------------------------------- 

48 

49DEFAULT_BACKEND: str = "in_memory" 

50DEFAULT_TTL_SECONDS: int = 86400 * 30 # 30 days 

51 

52__all__ = [ 

53 "DEFAULT_BACKEND", 

54 "DEFAULT_CONSOLIDATION_AGE_THRESHOLD_HOURS", 

55 "DEFAULT_CONSOLIDATION_BATCH_SIZE", 

56 "DEFAULT_CONSOLIDATION_IMPORTANCE_PRUNE", 

57 "DEFAULT_CONSOLIDATION_INTERVAL_S", 

58 "DEFAULT_EPISODIC_FRACTION", 

59 "DEFAULT_EPISODIC_TOP_K", 

60 "DEFAULT_EPISODIC_TTL_SECONDS", 

61 "DEFAULT_IMPORTANCE_WEIGHT", 

62 "DEFAULT_MAX_FACTS_PER_ENTITY", 

63 "DEFAULT_MAX_RECENT_TURNS", 

64 "DEFAULT_MIN_CONFIDENCE", 

65 "DEFAULT_RECENCY_WEIGHT", 

66 "DEFAULT_RECENT_TURNS_FRACTION", 

67 "DEFAULT_RELEVANCE_WEIGHT", 

68 "DEFAULT_SEMANTIC_FRACTION", 

69 "DEFAULT_SYSTEM_PROMPT_TOKENS", 

70 "DEFAULT_TOOL_DESC_FRACTION", 

71 "DEFAULT_TTL_SECONDS", 

72 "ENV_NESTED_DELIMITER", 

73 "ENV_PREFIX", 

74 "__version__", 

75]