1"""Constants for AI Observability."""
2
3from __future__ import annotations
4
5import importlib.metadata
6
7try:
8 __version__: str = importlib.metadata.version("lexigram-ai-observability")
9except ImportError:
10 __version__ = "0.0.0"
11
12
13# Environment variable prefix
14ENV_PREFIX: str = "LEX_AI_OBSERVABILITY__"
15ENV_NESTED_DELIMITER: str = "__"
16
17# Health check defaults
18DEFAULT_CHECK_INTERVAL_SECONDS: int = 30
19"""Default interval between health checks in seconds."""
20
21DEFAULT_CHECK_TIMEOUT_SECONDS: float = 5.0
22"""Default timeout for individual health checks."""
23
24# Metric name prefixes
25METRIC_PREFIX_LLM: str = "lexigram.ai.llm"
26"""Metric name prefix for LLM operations."""
27
28METRIC_PREFIX_VECTOR: str = "lexigram.ai.vector"
29"""Metric name prefix for vector operations."""
30
31METRIC_PREFIX_EMBEDDING: str = "lexigram.ai.embedding"
32"""Metric name prefix for embedding operations."""
33
34# Tracing span names
35SPAN_LLM_CALL: str = "llm.call"
36SPAN_VECTOR_QUERY: str = "vector.query"
37SPAN_EMBEDDING_GENERATE: str = "embedding.generate"
38SPAN_RAG_PIPELINE: str = "rag.pipeline"
39
40
41__all__ = [
42 "DEFAULT_CHECK_INTERVAL_SECONDS",
43 "DEFAULT_CHECK_TIMEOUT_SECONDS",
44 "ENV_NESTED_DELIMITER",
45 "ENV_PREFIX",
46 "METRIC_PREFIX_EMBEDDING",
47 "METRIC_PREFIX_LLM",
48 "METRIC_PREFIX_VECTOR",
49 "SPAN_EMBEDDING_GENERATE",
50 "SPAN_LLM_CALL",
51 "SPAN_RAG_PIPELINE",
52 "SPAN_VECTOR_QUERY",
53 "__version__",
54]