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

27 statements  

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

1"""LLM constants — provider names, defaults, and metric identifiers.""" 

2 

3from __future__ import annotations 

4 

5import importlib.metadata 

6 

7try: 

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

9except ImportError: 

10 __version__ = "0.0.0" 

11 

12 

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

14ENV_PREFIX: str = "LEX_AI_LLM__" 

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

16 

17ENV_NESTED_DELIMITER: str = "__" 

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

19 

20 

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

22# Provider names 

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

24 

25PROVIDER_OPENAI: str = "openai" 

26PROVIDER_ANTHROPIC: str = "anthropic" 

27PROVIDER_OLLAMA: str = "ollama" 

28PROVIDER_COHERE: str = "cohere" 

29PROVIDER_GROQ: str = "groq" 

30PROVIDER_MISTRAL: str = "mistral" 

31PROVIDER_OPENROUTER: str = "openrouter" 

32 

33# --------------------------------------------------------------------------- 

34# Defaults 

35# --------------------------------------------------------------------------- 

36 

37DEFAULT_TEMPERATURE: float = 0.7 

38DEFAULT_MAX_TOKENS: int = 2048 

39DEFAULT_TIMEOUT_S: int = 30 

40DEFAULT_MAX_RETRIES: int = 3 

41 

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

43# MetricProtocol names 

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

45 

46METRIC_LLM_REQUESTS_TOTAL: str = "ai.llm.requests.total" 

47METRIC_LLM_REQUEST_DURATION_MS: str = "ai.llm.request.duration_ms" 

48METRIC_LLM_TOKENS_INPUT: str = "ai.llm.tokens.input" 

49METRIC_LLM_TOKENS_OUTPUT: str = "ai.llm.tokens.output" 

50METRIC_LLM_CACHE_HITS: str = "ai.llm.cache.hits" 

51 

52__all__ = [ 

53 "DEFAULT_MAX_RETRIES", 

54 "DEFAULT_MAX_TOKENS", 

55 "DEFAULT_TEMPERATURE", 

56 "DEFAULT_TIMEOUT_S", 

57 "ENV_NESTED_DELIMITER", 

58 "ENV_PREFIX", 

59 "METRIC_LLM_CACHE_HITS", 

60 "METRIC_LLM_REQUESTS_TOTAL", 

61 "METRIC_LLM_REQUEST_DURATION_MS", 

62 "METRIC_LLM_TOKENS_INPUT", 

63 "METRIC_LLM_TOKENS_OUTPUT", 

64 "PROVIDER_ANTHROPIC", 

65 "PROVIDER_COHERE", 

66 "PROVIDER_GROQ", 

67 "PROVIDER_MISTRAL", 

68 "PROVIDER_OLLAMA", 

69 "PROVIDER_OPENAI", 

70 "PROVIDER_OPENROUTER", 

71 "__version__", 

72]