diff --git a/litellm/router_strategy/adaptive_router/adaptive_router.py b/litellm/router_strategy/adaptive_router/adaptive_router.py index 8ab4a72d518..3bccef36e68 100644 --- a/litellm/router_strategy/adaptive_router/adaptive_router.py +++ b/litellm/router_strategy/adaptive_router/adaptive_router.py @@ -27,9 +27,6 @@ from litellm._logging import verbose_router_logger from litellm.litellm_core_utils.prompt_templates.common_utils import ( get_last_user_message, ) -from litellm.proxy.db.db_transaction_queue.adaptive_router_update_queue import ( - AdaptiveRouterUpdateQueue, -) from litellm.router_strategy.adaptive_router.bandit import ( BanditCell, apply_delta, @@ -43,18 +40,21 @@ from litellm.router_strategy.adaptive_router.config import ( MIN_QUALITY_TIER_METADATA_KEY, OWNER_CACHE_TTL_SECONDS, ) - -# Sweep session-state cache when it exceeds this many live entries. Expired -# entries are dropped in bulk; amortizes to O(1) per insert. -_SESSION_STATE_SWEEP_THRESHOLD: int = 1024 -# Same pattern for the owner cache. -_OWNER_CACHE_SWEEP_THRESHOLD: int = 1024 from litellm.router_strategy.adaptive_router.signals import ( SessionState, SignalDelta, Turn, apply_turn, ) +from litellm.router_strategy.adaptive_router.update_queue import ( + AdaptiveRouterUpdateQueue, +) + +# Sweep session-state cache when it exceeds this many live entries. Expired +# entries are dropped in bulk; amortizes to O(1) per insert. +_SESSION_STATE_SWEEP_THRESHOLD: int = 1024 +# Same pattern for the owner cache. +_OWNER_CACHE_SWEEP_THRESHOLD: int = 1024 from litellm.types.llms.openai import AllMessageValues from litellm.types.router import ( AdaptiveRouterConfig, diff --git a/litellm/router_strategy/adaptive_router/config.py b/litellm/router_strategy/adaptive_router/config.py index b49d7cdf6d2..e72826cc056 100644 --- a/litellm/router_strategy/adaptive_router/config.py +++ b/litellm/router_strategy/adaptive_router/config.py @@ -39,7 +39,6 @@ SIGNAL_GATE_MIN_MESSAGES: int = 4 # Detector thresholds (from Plano/Chen 2026 paper). MISALIGNMENT_JACCARD_THRESHOLD: float = 0.45 STAGNATION_JACCARD_NEAR_DUP: float = 0.50 -STAGNATION_JACCARD_EXACT: float = 0.85 LOOP_REPEAT_THRESHOLD: int = 3 TOOL_CALL_HISTORY_MAX: int = 20 diff --git a/litellm/proxy/db/db_transaction_queue/adaptive_router_update_queue.py b/litellm/router_strategy/adaptive_router/update_queue.py similarity index 98% rename from litellm/proxy/db/db_transaction_queue/adaptive_router_update_queue.py rename to litellm/router_strategy/adaptive_router/update_queue.py index c76ca16aa35..b667f3a53a7 100644 --- a/litellm/proxy/db/db_transaction_queue/adaptive_router_update_queue.py +++ b/litellm/router_strategy/adaptive_router/update_queue.py @@ -21,7 +21,7 @@ from __future__ import annotations import asyncio from typing import Any, Dict, Tuple -from litellm._logging import verbose_proxy_logger +from litellm._logging import verbose_router_logger StateKey = Tuple[str, str, str] # (router_name, request_type, model_name) SessionKey = Tuple[str, str, str] # (session_id, router_name, model_name) @@ -139,7 +139,7 @@ class AdaptiveRouterUpdateQueue: }, ) except Exception as e: - verbose_proxy_logger.exception( + verbose_router_logger.exception( "AdaptiveRouterUpdateQueue: failed to flush state for %s: %s", key, e, @@ -193,7 +193,7 @@ class AdaptiveRouterUpdateQueue: }, ) except Exception as e: - verbose_proxy_logger.exception( + verbose_router_logger.exception( "AdaptiveRouterUpdateQueue: failed to flush session for %s: %s", key, e, diff --git a/tests/test_litellm/proxy/db/db_transaction_queue/test_adaptive_router_update_queue.py b/tests/test_litellm/router_strategy/adaptive_router/test_update_queue.py similarity index 98% rename from tests/test_litellm/proxy/db/db_transaction_queue/test_adaptive_router_update_queue.py rename to tests/test_litellm/router_strategy/adaptive_router/test_update_queue.py index 6ac8e84337e..9baa69a19e0 100644 --- a/tests/test_litellm/proxy/db/db_transaction_queue/test_adaptive_router_update_queue.py +++ b/tests/test_litellm/router_strategy/adaptive_router/test_update_queue.py @@ -3,7 +3,7 @@ from unittest.mock import AsyncMock, MagicMock import pytest -from litellm.proxy.db.db_transaction_queue.adaptive_router_update_queue import ( +from litellm.router_strategy.adaptive_router.update_queue import ( AdaptiveRouterUpdateQueue, )