Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-llm/src/lexigram/ai/llm/routing/__init__.py: 100%
12 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"""LLM multi-provider routing package.
3Provides a cascade-style router that tries providers in priority order
4and records every attempt via a pluggable quota backend and inference logger.
6Quick start::
8 from lexigram.ai.llm.routing import (
9 LLMRouter,
10 LLMConfig,
11 ProviderConfig,
12 InferenceResult,
13 InferenceError,
14 InferenceLog,
15 InMemoryQuotaBackend,
16 InMemoryInferenceLogger,
17 )
19 config = LLMConfig.from_env()
20 router = LLMRouter(
21 config=config,
22 clients={},
23 quota_backend=InMemoryQuotaBackend(),
24 inference_logger=InMemoryInferenceLogger(),
25 )
26 result = await router.route(messages=[{"role": "user", "content": "Hello"}])
27"""
29from __future__ import annotations
31from lexigram.ai.llm.routing.ab_split import ABSplitConfig, ABSplitStrategy
32from lexigram.ai.llm.routing.backends.database import DatabaseQuotaBackend
33from lexigram.ai.llm.routing.backends.memory import InMemoryQuotaBackend
34from lexigram.ai.llm.routing.config import (
35 GenerationDefaults,
36 LLMConfig,
37 LogConfig,
38 ProviderConfig,
39 QuotaConfig,
40)
41from lexigram.ai.llm.routing.loggers.database import DatabaseInferenceLogger
42from lexigram.ai.llm.routing.loggers.memory import InMemoryInferenceLogger
43from lexigram.ai.llm.routing.orchestrator import (
44 LLMOrchestrator,
45 NoSuitableModelError,
46 OrchestratorError,
47)
48from lexigram.ai.llm.routing.router import LLMRouter
49from lexigram.ai.llm.routing.strategies import (
50 CostOptimizedStrategy,
51 LatencyOptimizedStrategy,
52 ParallelRaceStrategy,
53 RoutingStrategyProtocol,
54 SequentialCascadeStrategy,
55)
56from lexigram.ai.llm.routing.types import (
57 InferenceError,
58 InferenceLog,
59 InferenceResult,
60 ProviderUsage,
61)
63__all__ = [
64 "ABSplitConfig",
65 "ABSplitStrategy",
66 "CostOptimizedStrategy",
67 "DatabaseInferenceLogger",
68 "DatabaseQuotaBackend",
69 "GenerationDefaults",
70 "InMemoryInferenceLogger",
71 "InMemoryQuotaBackend",
72 "InferenceError",
73 "InferenceLog",
74 "InferenceResult",
75 "LLMConfig",
76 "LLMOrchestrator",
77 "LLMRouter",
78 "LatencyOptimizedStrategy",
79 "LogConfig",
80 "NoSuitableModelError",
81 "OrchestratorError",
82 "ParallelRaceStrategy",
83 "ProviderConfig",
84 "ProviderUsage",
85 "QuotaConfig",
86 "RoutingStrategyProtocol",
87 "SequentialCascadeStrategy",
88]