Merge pull request #19818 from Quentin-M/search_tools_fix

fix: search tools not found when using per-request routers
This commit is contained in:
yuneng-jiang 2026-01-31 15:45:02 -08:00 • committed by GitHub
commit 93383d0966
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 12 deletions

View file

@ -631,9 +631,14 @@ class ProxyBaseLLMRequestProcessing:
# Get model_list from current router
model_list = llm_router.get_model_list()
if model_list is not None:
# Create user_config with model_list and router_settings
# Create user_config with model_list, search_tools, and router_settings
# This creates a per-request router with the hierarchical settings
user_config = {"model_list": model_list, **router_settings}
# Include search_tools from main router so per-request router has them
if hasattr(llm_router, "search_tools") and llm_router.search_tools:
user_config["search_tools"] = llm_router.search_tools
self.data["user_config"] = user_config
if "messages" in self.data and self.data["messages"]:

View file

@ -3227,17 +3227,18 @@ class ProxyConfig:
_model_list: list = self.decrypt_model_list_from_db(
new_models=models_list
)
if len(_model_list) > 0:
verbose_proxy_logger.debug(f"_model_list: {_model_list}")
llm_router = litellm.Router(
model_list=_model_list,
router_general_settings=RouterGeneralSettings(
async_only_mode=True # only init async clients
),
search_tools=search_tools,
ignore_invalid_deployments=True,
)
verbose_proxy_logger.debug(f"updated llm_router: {llm_router}")
# Create router even with empty model list to support search_tools
# Router can function with model_list=[] and only search_tools
verbose_proxy_logger.debug(f"_model_list: {_model_list}")
llm_router = litellm.Router(
model_list=_model_list,
router_general_settings=RouterGeneralSettings(
async_only_mode=True # only init async clients
),
search_tools=search_tools,
ignore_invalid_deployments=True,
)
verbose_proxy_logger.debug(f"updated llm_router: {llm_router}")
else:
verbose_proxy_logger.debug(f"len new_models: {len(models_list)}")
if search_tools is not None and llm_router is not None: