fixbug(router.py): add original_messages handling in Router class

Introduces original_messages to store a deep copy of input messages.
This change allows for better management of message states during
fallback operations, ensuring that the original messages are preserved
and can be reused when necessary.
This commit is contained in:
zhangjie 2025-04-11 18:46:15 +08:00
parent 8ecd9ede81
commit 2aa06f898f

View file

@ -3144,6 +3144,7 @@ class Router:
model_group: Optional[str] = kwargs.get("model")
disable_fallbacks: Optional[bool] = kwargs.pop("disable_fallbacks", False)
fallbacks: Optional[List] = kwargs.get("fallbacks", self.fallbacks)
original_messages: Optional[List] = copy.deepcopy(kwargs.get("messages", None))
context_window_fallbacks: Optional[List] = kwargs.get(
"context_window_fallbacks", self.context_window_fallbacks
)
@ -3194,6 +3195,8 @@ class Router:
input_kwargs["max_fallbacks"] = self.max_fallbacks
if "fallback_depth" not in input_kwargs:
input_kwargs["fallback_depth"] = 0
if original_messages is not None:
input_kwargs["messages"] = original_messages
try:
verbose_router_logger.info("Trying to fallback b/w models")