Shyamnath's picture
Push core package and essential files
469eae6
raw
history blame
1.81 kB
import os
from typing import Literal, Type, Union
from . import *
from .cache_control_check import _PROXY_CacheControlCheck
from .managed_files import _PROXY_LiteLLMManagedFiles
from .max_budget_limiter import _PROXY_MaxBudgetLimiter
from .parallel_request_limiter import _PROXY_MaxParallelRequestsHandler
try:
if (
os.getenv("EXPERIMENTAL_MULTI_INSTANCE_RATE_LIMITING", "false").lower()
== "true"
): # FEATURE FLAG as it's still in development
from enterprise.enterprise_hooks.parallel_request_limiter_v2 import (
_PROXY_MaxParallelRequestsHandler as _PROXY_MaxParallelRequestsHandlerV2,
)
max_parallel_request_handler: Type[
Union[
_PROXY_MaxParallelRequestsHandler, _PROXY_MaxParallelRequestsHandlerV2
]
] = _PROXY_MaxParallelRequestsHandlerV2
else:
max_parallel_request_handler = _PROXY_MaxParallelRequestsHandler
except ImportError:
max_parallel_request_handler = _PROXY_MaxParallelRequestsHandler
# List of all available hooks that can be enabled
PROXY_HOOKS = {
"max_budget_limiter": _PROXY_MaxBudgetLimiter,
"managed_files": _PROXY_LiteLLMManagedFiles,
"parallel_request_limiter": max_parallel_request_handler,
"cache_control_check": _PROXY_CacheControlCheck,
}
def get_proxy_hook(
hook_name: Union[
Literal[
"max_budget_limiter",
"managed_files",
"parallel_request_limiter",
"cache_control_check",
],
str,
]
):
"""
Factory method to get a proxy hook instance by name
"""
if hook_name not in PROXY_HOOKS:
raise ValueError(
f"Unknown hook: {hook_name}. Available hooks: {list(PROXY_HOOKS.keys())}"
)
return PROXY_HOOKS[hook_name]