Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 47 additions & 4 deletions litellm/proxy/proxy_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import traceback
import warnings
from datetime import datetime, timedelta
import enum
from typing import (
TYPE_CHECKING,
Any,
Expand All @@ -28,7 +29,41 @@
get_origin,
get_type_hints,
)

from pydantic import BaseModel, Json

from litellm.proxy._types import (
ProxyException,
UserAPIKeyAuth,
LiteLLM_UserTable,
CommonProxyErrors,
LitellmUserRoles,
ConfigList,
ConfigYAML,
ConfigFieldUpdate,
ConfigGeneralSettings,
ConfigFieldInfo,
PassThroughGenericEndpoint,
FieldDetail,
ConfigFieldDelete,
CallbackDelete,
InvitationClaim,
InvitationModel,
InvitationNew,
InvitationUpdate,
InvitationDelete,
CallInfo,
Litellm_EntityType,
TeamDefaultSettings,
RoleBasedPermissions,
SupportedDBObjectType,
ProxyErrorTypes,
EnterpriseLicenseData,
LiteLLM_JWTAuth,
TokenCountRequest,
TransformRequestBody,
LiteLLM_TeamTable,
SpecialModelNames,
)
from litellm._uuid import uuid
from litellm.constants import (
AIOHTTP_CONNECTOR_LIMIT,
Expand All @@ -45,6 +80,9 @@
LITELLM_EMBEDDING_PROVIDERS_SUPPORTING_INPUT_ARRAY_OF_TOKENS,
LITELLM_SETTINGS_SAFE_DB_OVERRIDES,
)
from litellm.litellm_core_utils.litellm_logging import (
_init_custom_logger_compatible_class,
)
from litellm.litellm_core_utils.safe_json_dumps import safe_dumps
from litellm.proxy.common_utils.callback_utils import (
normalize_callback_names,
Expand Down Expand Up @@ -2145,6 +2183,12 @@ def parse_search_tools(self, config: dict) -> Optional[List[SearchToolTypedDict]
List of validated SearchToolTypedDict or None if not configured
"""
search_tools_raw = config.get("search_tools", None)
if not search_tools_raw:
# Check in general_settings
general_settings = config.get("general_settings", {})
if general_settings:
search_tools_raw = general_settings.get("search_tools", None)

if not search_tools_raw:
return None

Expand Down Expand Up @@ -2886,9 +2930,6 @@ def _load_alerting_settings(self, general_settings: dict):
"""
Initialize alerting settings
"""
from litellm.litellm_core_utils.litellm_logging import (
_init_custom_logger_compatible_class,
)

_alerting_callbacks = general_settings.get("alerting", None)
verbose_proxy_logger.debug(f"_alerting_callbacks: {general_settings}")
Expand Down Expand Up @@ -3186,6 +3227,8 @@ async def _update_llm_router(
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:
llm_router.search_tools = search_tools
## DELETE MODEL LOGIC
await self._delete_deployment(db_models=models_list)

Expand Down
Loading