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
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Query routing for RAG systems.
3This module provides intelligent query routing to appropriate data sources,
4indexes, and retrieval strategies based on query analysis.
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
12Example:
13 ```python
14 from lexigram.ai.rag import (
15 QueryRouter,
16 QueryAnalyzer,
17 RuleBasedRouter,
18 DataSourceProtocol,
19 DataSourceType
20 )
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 ))
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"""
39from __future__ import annotations
41from lexigram.ai.rag.routing.analyzer import QueryAnalyzer
42from lexigram.ai.rag.routing.router import QueryRouter, RoutingStatistics
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)
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]