Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/routing/__init__.py: 100%

10 statements  

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

1"""Query routing for RAG systems. 

2 

3This module provides intelligent query routing to appropriate data sources, 

4indexes, and retrieval strategies based on query analysis. 

5 

6Core components: 

7- QueryAnalyzer: Extract features from queries 

8- RoutingStrategy: Decision-making logic (rule-based, semantic, LLM, hybrid) 

9- QueryRouter: Main orchestrator for routing decisions 

10- DataSourceProtocol: Registry of available data sources 

11 

12Example: 

13 ```python 

14 from lexigram.ai.rag import ( 

15 QueryRouter, 

16 QueryAnalyzer, 

17 RuleBasedRouter, 

18 DataSourceProtocol, 

19 DataSourceType 

20 ) 

21 

22 # Register data sources 

23 router = QueryRouter() 

24 router.register_source(DataSourceProtocol( 

25 name="technical_docs", 

26 type=DataSourceType.VECTOR_STORE, 

27 description="Technical documentation vector store", 

28 capabilities=["dense_search", "semantic_search"] 

29 )) 

30 

31 # Route query 

32 decision = await router.route("How do I configure authentication?") 

33 logger.info(f"Route to: {decision.data_sources[0].name}") 

34 logger.info(f"Strategy: {decision.strategy}") 

35 logger.info(f"Confidence: {decision.confidence}") 

36 ``` 

37""" 

38 

39from __future__ import annotations 

40 

41from lexigram.ai.rag.routing.analyzer import QueryAnalyzer 

42from lexigram.ai.rag.routing.router import QueryRouter, RoutingStatistics 

43 

44# Strategies 

45from lexigram.ai.rag.routing.strategies.base import RoutingStrategy 

46from lexigram.ai.rag.routing.strategies.hybrid import HybridRouter 

47from lexigram.ai.rag.routing.strategies.llm import LLMRouter 

48from lexigram.ai.rag.routing.strategies.rule_based import ( 

49 RoutingRule, 

50 RuleBasedRouter, 

51) 

52from lexigram.ai.rag.routing.strategies.semantic import ( 

53 RoutingPattern, 

54 SemanticRouter, 

55) 

56from lexigram.ai.rag.routing.types import ( 

57 DataSource, 

58 DataSourceType, 

59 QueryFeatures, 

60 QueryIntent, 

61 RoutingDecision, 

62) 

63 

64__all__ = [ 

65 "DataSource", 

66 "DataSourceType", 

67 "HybridRouter", 

68 "LLMRouter", 

69 # Main components 

70 "QueryAnalyzer", 

71 "QueryFeatures", 

72 # Core types 

73 "QueryIntent", 

74 "QueryRouter", 

75 "RoutingDecision", 

76 "RoutingPattern", 

77 "RoutingRule", 

78 "RoutingStatistics", 

79 # Strategies 

80 "RoutingStrategy", 

81 "RuleBasedRouter", 

82 "SemanticRouter", 

83]