forked from phoenix/litellm-mirror
(code quality) add ruff check PLR0915 for too-many-statements
(#6309)
* ruff add PLR0915 * add noqa for PLR0915 * fix noqa * add # noqa: PLR0915 * # noqa: PLR0915 * # noqa: PLR0915 * # noqa: PLR0915 * add # noqa: PLR0915 * # noqa: PLR0915 * # noqa: PLR0915 * # noqa: PLR0915 * # noqa: PLR0915
This commit is contained in:
parent
7724d5895c
commit
610974b4fc
56 changed files with 137 additions and 119 deletions
|
@ -17,7 +17,7 @@ db = Prisma(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def check_view_exists():
|
async def check_view_exists(): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Checks if the LiteLLM_VerificationTokenView and MonthlyGlobalSpend exists in the user's db.
|
Checks if the LiteLLM_VerificationTokenView and MonthlyGlobalSpend exists in the user's db.
|
||||||
|
|
||||||
|
|
|
@ -220,7 +220,7 @@ class Cache:
|
||||||
if self.namespace is not None and isinstance(self.cache, RedisCache):
|
if self.namespace is not None and isinstance(self.cache, RedisCache):
|
||||||
self.cache.namespace = self.namespace
|
self.cache.namespace = self.namespace
|
||||||
|
|
||||||
def get_cache_key(self, *args, **kwargs) -> str:
|
def get_cache_key(self, *args, **kwargs) -> str: # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Get the cache key for the given arguments.
|
Get the cache key for the given arguments.
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ from .base_cache import BaseCache
|
||||||
|
|
||||||
|
|
||||||
class QdrantSemanticCache(BaseCache):
|
class QdrantSemanticCache(BaseCache):
|
||||||
def __init__(
|
def __init__( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
qdrant_api_base=None,
|
qdrant_api_base=None,
|
||||||
qdrant_api_key=None,
|
qdrant_api_key=None,
|
||||||
|
|
|
@ -79,7 +79,7 @@ def _cost_per_token_custom_pricing_helper(
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def cost_per_token(
|
def cost_per_token( # noqa: PLR0915
|
||||||
model: str = "",
|
model: str = "",
|
||||||
prompt_tokens: int = 0,
|
prompt_tokens: int = 0,
|
||||||
completion_tokens: int = 0,
|
completion_tokens: int = 0,
|
||||||
|
@ -474,7 +474,7 @@ def _select_model_name_for_cost_calc(
|
||||||
return return_model
|
return return_model
|
||||||
|
|
||||||
|
|
||||||
def completion_cost(
|
def completion_cost( # noqa: PLR0915
|
||||||
completion_response=None,
|
completion_response=None,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
prompt="",
|
prompt="",
|
||||||
|
|
|
@ -287,7 +287,7 @@ class SlackAlerting(CustomBatchLogger):
|
||||||
except Exception:
|
except Exception:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
async def send_daily_reports(self, router) -> bool:
|
async def send_daily_reports(self, router) -> bool: # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Send a daily report on:
|
Send a daily report on:
|
||||||
- Top 5 deployments with most failed requests
|
- Top 5 deployments with most failed requests
|
||||||
|
@ -573,7 +573,7 @@ class SlackAlerting(CustomBatchLogger):
|
||||||
ttl=self.alerting_args.budget_alert_ttl,
|
ttl=self.alerting_args.budget_alert_ttl,
|
||||||
)
|
)
|
||||||
|
|
||||||
async def budget_alerts(
|
async def budget_alerts( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
type: Literal[
|
type: Literal[
|
||||||
"token_budget",
|
"token_budget",
|
||||||
|
|
|
@ -125,7 +125,9 @@ class BraintrustLogger(CustomLogger):
|
||||||
|
|
||||||
self.default_project_id = project_dict["id"]
|
self.default_project_id = project_dict["id"]
|
||||||
|
|
||||||
def log_success_event(self, kwargs, response_obj, start_time, end_time):
|
def log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
verbose_logger.debug("REACHES BRAINTRUST SUCCESS")
|
verbose_logger.debug("REACHES BRAINTRUST SUCCESS")
|
||||||
try:
|
try:
|
||||||
litellm_call_id = kwargs.get("litellm_call_id")
|
litellm_call_id = kwargs.get("litellm_call_id")
|
||||||
|
@ -237,7 +239,9 @@ class BraintrustLogger(CustomLogger):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise e # don't use verbose_logger.exception, if exception is raised
|
raise e # don't use verbose_logger.exception, if exception is raised
|
||||||
|
|
||||||
async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
|
async def async_log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
verbose_logger.debug("REACHES BRAINTRUST SUCCESS")
|
verbose_logger.debug("REACHES BRAINTRUST SUCCESS")
|
||||||
try:
|
try:
|
||||||
litellm_call_id = kwargs.get("litellm_call_id")
|
litellm_call_id = kwargs.get("litellm_call_id")
|
||||||
|
|
|
@ -143,7 +143,7 @@ class LangFuseLogger:
|
||||||
# level ="ERROR" # can be any of DEBUG, DEFAULT, WARNING or ERROR
|
# level ="ERROR" # can be any of DEBUG, DEFAULT, WARNING or ERROR
|
||||||
# status_message='error' # can be any string (e.g. stringified stack trace or error body)
|
# status_message='error' # can be any string (e.g. stringified stack trace or error body)
|
||||||
# )
|
# )
|
||||||
def log_event(
|
def log_event( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
kwargs,
|
kwargs,
|
||||||
response_obj,
|
response_obj,
|
||||||
|
@ -349,7 +349,7 @@ class LangFuseLogger:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def _log_langfuse_v2(
|
def _log_langfuse_v2( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
user_id,
|
user_id,
|
||||||
metadata,
|
metadata,
|
||||||
|
|
|
@ -132,7 +132,9 @@ class LangsmithLogger(CustomBatchLogger):
|
||||||
LANGSMITH_PROJECT=_credentials_project,
|
LANGSMITH_PROJECT=_credentials_project,
|
||||||
)
|
)
|
||||||
|
|
||||||
def _prepare_log_data(self, kwargs, response_obj, start_time, end_time):
|
def _prepare_log_data( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
import json
|
import json
|
||||||
from datetime import datetime as dt
|
from datetime import datetime as dt
|
||||||
|
|
||||||
|
|
|
@ -393,7 +393,7 @@ class OpenTelemetry(CustomLogger):
|
||||||
except Exception:
|
except Exception:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def set_attributes(self, span: Span, kwargs, response_obj):
|
def set_attributes(self, span: Span, kwargs, response_obj): # noqa: PLR0915
|
||||||
try:
|
try:
|
||||||
if self.callback_name == "arize":
|
if self.callback_name == "arize":
|
||||||
from litellm.integrations.arize_ai import set_arize_ai_attributes
|
from litellm.integrations.arize_ai import set_arize_ai_attributes
|
||||||
|
|
|
@ -182,7 +182,7 @@ class OpikLogger(CustomBatchLogger):
|
||||||
url=self.span_url, headers=self.headers, batch={"spans": spans}
|
url=self.span_url, headers=self.headers, batch={"spans": spans}
|
||||||
)
|
)
|
||||||
|
|
||||||
def _create_opik_payload(
|
def _create_opik_payload( # noqa: PLR0915
|
||||||
self, kwargs, response_obj, start_time, end_time
|
self, kwargs, response_obj, start_time, end_time
|
||||||
) -> List[Dict]:
|
) -> List[Dict]:
|
||||||
|
|
||||||
|
|
|
@ -321,7 +321,9 @@ class PrometheusLogger(CustomLogger):
|
||||||
print_verbose(f"Got exception on init prometheus client {str(e)}")
|
print_verbose(f"Got exception on init prometheus client {str(e)}")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
|
async def async_log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
# Define prometheus client
|
# Define prometheus client
|
||||||
from litellm.proxy.common_utils.callback_utils import (
|
from litellm.proxy.common_utils.callback_utils import (
|
||||||
get_model_group_from_litellm_kwargs,
|
get_model_group_from_litellm_kwargs,
|
||||||
|
|
|
@ -89,7 +89,7 @@ def _get_response_headers(original_exception: Exception) -> Optional[httpx.Heade
|
||||||
return _response_headers
|
return _response_headers
|
||||||
|
|
||||||
|
|
||||||
def exception_type( # type: ignore
|
def exception_type( # type: ignore # noqa: PLR0915
|
||||||
model,
|
model,
|
||||||
original_exception,
|
original_exception,
|
||||||
custom_llm_provider,
|
custom_llm_provider,
|
||||||
|
|
|
@ -67,7 +67,7 @@ def handle_cohere_chat_model_custom_llm_provider(
|
||||||
return model, custom_llm_provider
|
return model, custom_llm_provider
|
||||||
|
|
||||||
|
|
||||||
def get_llm_provider(
|
def get_llm_provider( # noqa: PLR0915
|
||||||
model: str,
|
model: str,
|
||||||
custom_llm_provider: Optional[str] = None,
|
custom_llm_provider: Optional[str] = None,
|
||||||
api_base: Optional[str] = None,
|
api_base: Optional[str] = None,
|
||||||
|
|
|
@ -428,7 +428,7 @@ class Logging:
|
||||||
): # if model name was changes pre-call, overwrite the initial model call name with the new one
|
): # if model name was changes pre-call, overwrite the initial model call name with the new one
|
||||||
self.model_call_details["model"] = model
|
self.model_call_details["model"] = model
|
||||||
|
|
||||||
def pre_call(self, input, api_key, model=None, additional_args={}):
|
def pre_call(self, input, api_key, model=None, additional_args={}): # noqa: PLR0915
|
||||||
# Log the exact input to the LLM API
|
# Log the exact input to the LLM API
|
||||||
litellm.error_logs["PRE_CALL"] = locals()
|
litellm.error_logs["PRE_CALL"] = locals()
|
||||||
try:
|
try:
|
||||||
|
@ -868,7 +868,7 @@ class Logging:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception(f"[Non-Blocking] LiteLLM.Success_Call Error: {str(e)}")
|
raise Exception(f"[Non-Blocking] LiteLLM.Success_Call Error: {str(e)}")
|
||||||
|
|
||||||
def success_handler(
|
def success_handler( # noqa: PLR0915
|
||||||
self, result=None, start_time=None, end_time=None, cache_hit=None, **kwargs
|
self, result=None, start_time=None, end_time=None, cache_hit=None, **kwargs
|
||||||
):
|
):
|
||||||
print_verbose(f"Logging Details LiteLLM-Success Call: Cache_hit={cache_hit}")
|
print_verbose(f"Logging Details LiteLLM-Success Call: Cache_hit={cache_hit}")
|
||||||
|
@ -1494,7 +1494,7 @@ class Logging:
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_success_handler(
|
async def async_success_handler( # noqa: PLR0915
|
||||||
self, result=None, start_time=None, end_time=None, cache_hit=None, **kwargs
|
self, result=None, start_time=None, end_time=None, cache_hit=None, **kwargs
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
|
@ -1833,7 +1833,7 @@ class Logging:
|
||||||
kwargs=self.model_call_details,
|
kwargs=self.model_call_details,
|
||||||
) # type: ignore
|
) # type: ignore
|
||||||
|
|
||||||
def failure_handler(
|
def failure_handler( # noqa: PLR0915
|
||||||
self, exception, traceback_exception, start_time=None, end_time=None
|
self, exception, traceback_exception, start_time=None, end_time=None
|
||||||
):
|
):
|
||||||
verbose_logger.debug(
|
verbose_logger.debug(
|
||||||
|
@ -2191,7 +2191,7 @@ class Logging:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def set_callbacks(callback_list, function_id=None):
|
def set_callbacks(callback_list, function_id=None): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Globally sets the callback client
|
Globally sets the callback client
|
||||||
"""
|
"""
|
||||||
|
@ -2301,7 +2301,7 @@ def set_callbacks(callback_list, function_id=None):
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
def _init_custom_logger_compatible_class(
|
def _init_custom_logger_compatible_class( # noqa: PLR0915
|
||||||
logging_integration: litellm._custom_logger_compatible_callbacks_literal,
|
logging_integration: litellm._custom_logger_compatible_callbacks_literal,
|
||||||
internal_usage_cache: Optional[DualCache],
|
internal_usage_cache: Optional[DualCache],
|
||||||
llm_router: Optional[
|
llm_router: Optional[
|
||||||
|
@ -2629,7 +2629,7 @@ def is_valid_sha256_hash(value: str) -> bool:
|
||||||
return bool(re.fullmatch(r"[a-fA-F0-9]{64}", value))
|
return bool(re.fullmatch(r"[a-fA-F0-9]{64}", value))
|
||||||
|
|
||||||
|
|
||||||
def get_standard_logging_object_payload(
|
def get_standard_logging_object_payload( # noqa: PLR0915
|
||||||
kwargs: Optional[dict],
|
kwargs: Optional[dict],
|
||||||
init_response_obj: Union[Any, BaseModel, dict],
|
init_response_obj: Union[Any, BaseModel, dict],
|
||||||
start_time: dt_object,
|
start_time: dt_object,
|
||||||
|
|
|
@ -344,7 +344,7 @@ class AzureChatCompletion(BaseLLM):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -612,7 +612,7 @@ class OpenAIChatCompletion(BaseLLM):
|
||||||
else:
|
else:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
def completion( # type: ignore
|
def completion( # type: ignore # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_response: ModelResponse,
|
model_response: ModelResponse,
|
||||||
timeout: Union[float, httpx.Timeout],
|
timeout: Union[float, httpx.Timeout],
|
||||||
|
|
|
@ -73,7 +73,7 @@ class AnthropicExperimentalPassThroughConfig:
|
||||||
"""
|
"""
|
||||||
return ["messages", "metadata", "system", "tool_choice", "tools"]
|
return ["messages", "metadata", "system", "tool_choice", "tools"]
|
||||||
|
|
||||||
def translate_anthropic_messages_to_openai(
|
def translate_anthropic_messages_to_openai( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
messages: List[
|
messages: List[
|
||||||
Union[
|
Union[
|
||||||
|
|
|
@ -141,7 +141,7 @@ class AzureTextCompletion(BaseLLM):
|
||||||
headers["Authorization"] = f"Bearer {azure_ad_token}"
|
headers["Authorization"] = f"Bearer {azure_ad_token}"
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -38,7 +38,7 @@ class BaseAWSLLM(BaseLLM):
|
||||||
credential_str = json.dumps(credential_args, sort_keys=True)
|
credential_str = json.dumps(credential_args, sort_keys=True)
|
||||||
return hashlib.sha256(credential_str.encode()).hexdigest()
|
return hashlib.sha256(credential_str.encode()).hexdigest()
|
||||||
|
|
||||||
def get_credentials(
|
def get_credentials( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
aws_access_key_id: Optional[str] = None,
|
aws_access_key_id: Optional[str] = None,
|
||||||
aws_secret_access_key: Optional[str] = None,
|
aws_secret_access_key: Optional[str] = None,
|
||||||
|
|
|
@ -200,7 +200,7 @@ class BedrockConverseLLM(BaseAWSLLM):
|
||||||
encoding=encoding,
|
encoding=encoding,
|
||||||
)
|
)
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -308,7 +308,7 @@ class BedrockLLM(BaseAWSLLM):
|
||||||
prompt += f"{message['content']}"
|
prompt += f"{message['content']}"
|
||||||
return prompt, chat_history # type: ignore
|
return prompt, chat_history # type: ignore
|
||||||
|
|
||||||
def process_response(
|
def process_response( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
response: Union[requests.Response, httpx.Response],
|
response: Union[requests.Response, httpx.Response],
|
||||||
|
@ -574,7 +574,7 @@ class BedrockLLM(BaseAWSLLM):
|
||||||
"""
|
"""
|
||||||
return urllib.parse.quote(model_id, safe="")
|
return urllib.parse.quote(model_id, safe="")
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -333,7 +333,7 @@ class Huggingface(BaseLLM):
|
||||||
headers = default_headers
|
headers = default_headers
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
def convert_to_model_response_object(
|
def convert_to_model_response_object( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
completion_response,
|
completion_response,
|
||||||
model_response: litellm.ModelResponse,
|
model_response: litellm.ModelResponse,
|
||||||
|
@ -447,7 +447,7 @@ class Huggingface(BaseLLM):
|
||||||
model_response._hidden_params["original_response"] = completion_response
|
model_response._hidden_params["original_response"] = completion_response
|
||||||
return model_response
|
return model_response
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -213,7 +213,7 @@ class OllamaChatConfig:
|
||||||
|
|
||||||
|
|
||||||
# ollama implementation
|
# ollama implementation
|
||||||
def get_ollama_response(
|
def get_ollama_response( # noqa: PLR0915
|
||||||
model_response: litellm.ModelResponse,
|
model_response: litellm.ModelResponse,
|
||||||
messages: list,
|
messages: list,
|
||||||
optional_params: dict,
|
optional_params: dict,
|
||||||
|
|
|
@ -240,7 +240,7 @@ class PredibaseChatCompletion(BaseLLM):
|
||||||
generated_text = generated_text[::-1].replace(token[::-1], "", 1)[::-1]
|
generated_text = generated_text[::-1].replace(token[::-1], "", 1)[::-1]
|
||||||
return generated_text
|
return generated_text
|
||||||
|
|
||||||
def process_response(
|
def process_response( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
response: Union[requests.Response, httpx.Response],
|
response: Union[requests.Response, httpx.Response],
|
||||||
|
|
|
@ -385,7 +385,9 @@ known_tokenizer_config = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def hf_chat_template(model: str, messages: list, chat_template: Optional[Any] = None):
|
def hf_chat_template( # noqa: PLR0915
|
||||||
|
model: str, messages: list, chat_template: Optional[Any] = None
|
||||||
|
):
|
||||||
# Define Jinja2 environment
|
# Define Jinja2 environment
|
||||||
env = ImmutableSandboxedEnvironment()
|
env = ImmutableSandboxedEnvironment()
|
||||||
|
|
||||||
|
@ -1339,7 +1341,7 @@ def add_cache_control_to_content(
|
||||||
return anthropic_content_element
|
return anthropic_content_element
|
||||||
|
|
||||||
|
|
||||||
def anthropic_messages_pt(
|
def anthropic_messages_pt( # noqa: PLR0915
|
||||||
messages: List[AllMessageValues],
|
messages: List[AllMessageValues],
|
||||||
model: str,
|
model: str,
|
||||||
llm_provider: str,
|
llm_provider: str,
|
||||||
|
@ -1797,7 +1799,7 @@ def convert_to_cohere_tool_invoke(tool_calls: list) -> List[ToolCallObject]:
|
||||||
return cohere_tool_invoke
|
return cohere_tool_invoke
|
||||||
|
|
||||||
|
|
||||||
def cohere_messages_pt_v2(
|
def cohere_messages_pt_v2( # noqa: PLR0915
|
||||||
messages: List,
|
messages: List,
|
||||||
model: str,
|
model: str,
|
||||||
llm_provider: str,
|
llm_provider: str,
|
||||||
|
@ -2409,7 +2411,7 @@ def _insert_assistant_continue_message(
|
||||||
return messages
|
return messages
|
||||||
|
|
||||||
|
|
||||||
def _bedrock_converse_messages_pt(
|
def _bedrock_converse_messages_pt( # noqa: PLR0915
|
||||||
messages: List,
|
messages: List,
|
||||||
model: str,
|
model: str,
|
||||||
llm_provider: str,
|
llm_provider: str,
|
||||||
|
|
|
@ -248,7 +248,7 @@ class SagemakerLLM(BaseAWSLLM):
|
||||||
|
|
||||||
return prompt
|
return prompt
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
|
|
|
@ -742,7 +742,7 @@ class VertexLLM(VertexBase):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def _process_response(
|
def _process_response( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
response: httpx.Response,
|
response: httpx.Response,
|
||||||
|
|
|
@ -131,7 +131,7 @@ def _process_gemini_image(image_url: str) -> PartType:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
def _gemini_convert_messages_with_history(
|
def _gemini_convert_messages_with_history( # noqa: PLR0915
|
||||||
messages: List[AllMessageValues],
|
messages: List[AllMessageValues],
|
||||||
) -> List[ContentType]:
|
) -> List[ContentType]:
|
||||||
"""
|
"""
|
||||||
|
@ -279,7 +279,7 @@ def _set_client_in_cache(client_cache_key: str, vertex_llm_model: Any):
|
||||||
litellm.in_memory_llm_clients_cache[client_cache_key] = vertex_llm_model
|
litellm.in_memory_llm_clients_cache[client_cache_key] = vertex_llm_model
|
||||||
|
|
||||||
|
|
||||||
def completion(
|
def completion( # noqa: PLR0915
|
||||||
model: str,
|
model: str,
|
||||||
messages: list,
|
messages: list,
|
||||||
model_response: ModelResponse,
|
model_response: ModelResponse,
|
||||||
|
@ -770,7 +770,7 @@ def completion(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def async_completion(
|
async def async_completion( # noqa: PLR0915
|
||||||
llm_model,
|
llm_model,
|
||||||
mode: str,
|
mode: str,
|
||||||
prompt: str,
|
prompt: str,
|
||||||
|
@ -1010,7 +1010,7 @@ async def async_completion(
|
||||||
raise VertexAIError(status_code=500, message=str(e))
|
raise VertexAIError(status_code=500, message=str(e))
|
||||||
|
|
||||||
|
|
||||||
async def async_streaming(
|
async def async_streaming( # noqa: PLR0915
|
||||||
llm_model,
|
llm_model,
|
||||||
mode: str,
|
mode: str,
|
||||||
prompt: str,
|
prompt: str,
|
||||||
|
|
|
@ -657,7 +657,7 @@ def mock_completion(
|
||||||
|
|
||||||
|
|
||||||
@client
|
@client
|
||||||
def completion( # type: ignore
|
def completion( # type: ignore # noqa: PLR0915
|
||||||
model: str,
|
model: str,
|
||||||
# Optional OpenAI params: see https://platform.openai.com/docs/api-reference/chat/create
|
# Optional OpenAI params: see https://platform.openai.com/docs/api-reference/chat/create
|
||||||
messages: List = [],
|
messages: List = [],
|
||||||
|
@ -3136,7 +3136,7 @@ async def aembedding(*args, **kwargs) -> EmbeddingResponse:
|
||||||
|
|
||||||
|
|
||||||
@client
|
@client
|
||||||
def embedding(
|
def embedding( # noqa: PLR0915
|
||||||
model,
|
model,
|
||||||
input=[],
|
input=[],
|
||||||
# Optional params
|
# Optional params
|
||||||
|
@ -3911,7 +3911,7 @@ async def atext_completion(
|
||||||
|
|
||||||
|
|
||||||
@client
|
@client
|
||||||
def text_completion(
|
def text_completion( # noqa: PLR0915
|
||||||
prompt: Union[
|
prompt: Union[
|
||||||
str, List[Union[str, List[Union[str, List[int]]]]]
|
str, List[Union[str, List[Union[str, List[int]]]]]
|
||||||
], # Required: The prompt(s) to generate completions for.
|
], # Required: The prompt(s) to generate completions for.
|
||||||
|
@ -4378,7 +4378,7 @@ async def aimage_generation(*args, **kwargs) -> ImageResponse:
|
||||||
|
|
||||||
|
|
||||||
@client
|
@client
|
||||||
def image_generation(
|
def image_generation( # noqa: PLR0915
|
||||||
prompt: str,
|
prompt: str,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
n: Optional[int] = None,
|
n: Optional[int] = None,
|
||||||
|
@ -5111,7 +5111,7 @@ def speech(
|
||||||
##### Health Endpoints #######################
|
##### Health Endpoints #######################
|
||||||
|
|
||||||
|
|
||||||
async def ahealth_check(
|
async def ahealth_check( # noqa: PLR0915
|
||||||
model_params: dict,
|
model_params: dict,
|
||||||
mode: Optional[
|
mode: Optional[
|
||||||
Literal[
|
Literal[
|
||||||
|
@ -5374,7 +5374,7 @@ def stream_chunk_builder_text_completion(
|
||||||
return TextCompletionResponse(**response)
|
return TextCompletionResponse(**response)
|
||||||
|
|
||||||
|
|
||||||
def stream_chunk_builder(
|
def stream_chunk_builder( # noqa: PLR0915
|
||||||
chunks: list, messages: Optional[list] = None, start_time=None, end_time=None
|
chunks: list, messages: Optional[list] = None, start_time=None, end_time=None
|
||||||
) -> Optional[Union[ModelResponse, TextCompletionResponse]]:
|
) -> Optional[Union[ModelResponse, TextCompletionResponse]]:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -44,7 +44,7 @@ else:
|
||||||
all_routes = LiteLLMRoutes.openai_routes.value + LiteLLMRoutes.management_routes.value
|
all_routes = LiteLLMRoutes.openai_routes.value + LiteLLMRoutes.management_routes.value
|
||||||
|
|
||||||
|
|
||||||
def common_checks(
|
def common_checks( # noqa: PLR0915
|
||||||
request_body: dict,
|
request_body: dict,
|
||||||
team_object: Optional[LiteLLM_TeamTable],
|
team_object: Optional[LiteLLM_TeamTable],
|
||||||
user_object: Optional[LiteLLM_UserTable],
|
user_object: Optional[LiteLLM_UserTable],
|
||||||
|
|
|
@ -105,7 +105,7 @@ def _get_bearer_token(
|
||||||
return api_key
|
return api_key
|
||||||
|
|
||||||
|
|
||||||
async def user_api_key_auth(
|
async def user_api_key_auth( # noqa: PLR0915
|
||||||
request: Request,
|
request: Request,
|
||||||
api_key: str = fastapi.Security(api_key_header),
|
api_key: str = fastapi.Security(api_key_header),
|
||||||
azure_api_key_header: str = fastapi.Security(azure_api_key_header),
|
azure_api_key_header: str = fastapi.Security(azure_api_key_header),
|
||||||
|
|
|
@ -11,7 +11,7 @@ blue_color_code = "\033[94m"
|
||||||
reset_color_code = "\033[0m"
|
reset_color_code = "\033[0m"
|
||||||
|
|
||||||
|
|
||||||
def initialize_callbacks_on_proxy(
|
def initialize_callbacks_on_proxy( # noqa: PLR0915
|
||||||
value: Any,
|
value: Any,
|
||||||
premium_user: bool,
|
premium_user: bool,
|
||||||
config_file_path: str,
|
config_file_path: str,
|
||||||
|
|
|
@ -5,7 +5,7 @@ from litellm import verbose_logger
|
||||||
_db = Any
|
_db = Any
|
||||||
|
|
||||||
|
|
||||||
async def create_missing_views(db: _db):
|
async def create_missing_views(db: _db): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
NOTE: Copy of `litellm/db_scripts/create_views.py`.
|
NOTE: Copy of `litellm/db_scripts/create_views.py`.
|
||||||
|
|
|
@ -119,7 +119,7 @@ class lakeraAI_Moderation(CustomGuardrail):
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def _check(
|
async def _check( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
data: dict,
|
data: dict,
|
||||||
user_api_key_dict: UserAPIKeyAuth,
|
user_api_key_dict: UserAPIKeyAuth,
|
||||||
|
|
|
@ -86,7 +86,7 @@ Map guardrail_name: <pre_call>, <post_call>, during_call
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def init_guardrails_v2(
|
def init_guardrails_v2( # noqa: PLR0915
|
||||||
all_guardrails: List[Dict],
|
all_guardrails: List[Dict],
|
||||||
config_file_path: Optional[str] = None,
|
config_file_path: Optional[str] = None,
|
||||||
):
|
):
|
||||||
|
|
|
@ -53,7 +53,7 @@ async def test_endpoint(request: Request):
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
include_in_schema=False,
|
include_in_schema=False,
|
||||||
)
|
)
|
||||||
async def health_services_endpoint(
|
async def health_services_endpoint( # noqa: PLR0915
|
||||||
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
||||||
service: Union[
|
service: Union[
|
||||||
Literal[
|
Literal[
|
||||||
|
|
|
@ -117,7 +117,7 @@ class _PROXY_MaxParallelRequestsHandler(CustomLogger):
|
||||||
headers={"retry-after": str(self.time_to_next_minute())},
|
headers={"retry-after": str(self.time_to_next_minute())},
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_pre_call_hook(
|
async def async_pre_call_hook( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
user_api_key_dict: UserAPIKeyAuth,
|
user_api_key_dict: UserAPIKeyAuth,
|
||||||
cache: DualCache,
|
cache: DualCache,
|
||||||
|
@ -411,7 +411,9 @@ class _PROXY_MaxParallelRequestsHandler(CustomLogger):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
|
async def async_log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
from litellm.proxy.common_utils.callback_utils import (
|
from litellm.proxy.common_utils.callback_utils import (
|
||||||
get_model_group_from_litellm_kwargs,
|
get_model_group_from_litellm_kwargs,
|
||||||
)
|
)
|
||||||
|
|
|
@ -211,7 +211,7 @@ def add_litellm_data_for_backend_llm_call(
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
async def add_litellm_data_to_request(
|
async def add_litellm_data_to_request( # noqa: PLR0915
|
||||||
data: dict,
|
data: dict,
|
||||||
request: Request,
|
request: Request,
|
||||||
user_api_key_dict: UserAPIKeyAuth,
|
user_api_key_dict: UserAPIKeyAuth,
|
||||||
|
|
|
@ -308,7 +308,7 @@ def get_team_from_list(
|
||||||
# response_model=UserInfoResponse,
|
# response_model=UserInfoResponse,
|
||||||
)
|
)
|
||||||
@management_endpoint_wrapper
|
@management_endpoint_wrapper
|
||||||
async def user_info(
|
async def user_info( # noqa: PLR0915
|
||||||
user_id: Optional[str] = fastapi.Query(
|
user_id: Optional[str] = fastapi.Query(
|
||||||
default=None, description="User ID in the request parameters"
|
default=None, description="User ID in the request parameters"
|
||||||
),
|
),
|
||||||
|
|
|
@ -45,7 +45,7 @@ router = APIRouter()
|
||||||
response_model=GenerateKeyResponse,
|
response_model=GenerateKeyResponse,
|
||||||
)
|
)
|
||||||
@management_endpoint_wrapper
|
@management_endpoint_wrapper
|
||||||
async def generate_key_fn(
|
async def generate_key_fn( # noqa: PLR0915
|
||||||
data: GenerateKeyRequest,
|
data: GenerateKeyRequest,
|
||||||
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
||||||
litellm_changed_by: Optional[str] = Header(
|
litellm_changed_by: Optional[str] = Header(
|
||||||
|
@ -768,7 +768,7 @@ async def info_key_fn(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def generate_key_helper_fn(
|
async def generate_key_helper_fn( # noqa: PLR0915
|
||||||
request_type: Literal[
|
request_type: Literal[
|
||||||
"user", "key"
|
"user", "key"
|
||||||
], # identifies if this request is from /user/new or /key/generate
|
], # identifies if this request is from /user/new or /key/generate
|
||||||
|
|
|
@ -92,7 +92,7 @@ async def get_all_team_memberships(
|
||||||
response_model=LiteLLM_TeamTable,
|
response_model=LiteLLM_TeamTable,
|
||||||
)
|
)
|
||||||
@management_endpoint_wrapper
|
@management_endpoint_wrapper
|
||||||
async def new_team(
|
async def new_team( # noqa: PLR0915
|
||||||
data: NewTeamRequest,
|
data: NewTeamRequest,
|
||||||
http_request: Request,
|
http_request: Request,
|
||||||
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
||||||
|
|
|
@ -46,7 +46,7 @@ router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
@router.get("/sso/key/generate", tags=["experimental"], include_in_schema=False)
|
@router.get("/sso/key/generate", tags=["experimental"], include_in_schema=False)
|
||||||
async def google_login(request: Request):
|
async def google_login(request: Request): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env
|
Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env
|
||||||
PROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL="https://litellm-production-7002.up.railway.app/"
|
PROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL="https://litellm-production-7002.up.railway.app/"
|
||||||
|
@ -221,7 +221,7 @@ async def google_login(request: Request):
|
||||||
|
|
||||||
|
|
||||||
@router.get("/sso/callback", tags=["experimental"], include_in_schema=False)
|
@router.get("/sso/callback", tags=["experimental"], include_in_schema=False)
|
||||||
async def auth_callback(request: Request):
|
async def auth_callback(request: Request): # noqa: PLR0915
|
||||||
"""Verify login"""
|
"""Verify login"""
|
||||||
from litellm.proxy.management_endpoints.key_management_endpoints import (
|
from litellm.proxy.management_endpoints.key_management_endpoints import (
|
||||||
generate_key_helper_fn,
|
generate_key_helper_fn,
|
||||||
|
|
|
@ -105,7 +105,7 @@ async def set_env_variables_in_header(custom_headers: Optional[dict]) -> Optiona
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
|
|
||||||
async def chat_completion_pass_through_endpoint(
|
async def chat_completion_pass_through_endpoint( # noqa: PLR0915
|
||||||
fastapi_response: Response,
|
fastapi_response: Response,
|
||||||
request: Request,
|
request: Request,
|
||||||
adapter_id: str,
|
adapter_id: str,
|
||||||
|
@ -306,7 +306,7 @@ def get_endpoint_type(url: str) -> EndpointType:
|
||||||
return EndpointType.GENERIC
|
return EndpointType.GENERIC
|
||||||
|
|
||||||
|
|
||||||
async def pass_through_request(
|
async def pass_through_request( # noqa: PLR0915
|
||||||
request: Request,
|
request: Request,
|
||||||
target: str,
|
target: str,
|
||||||
custom_headers: dict,
|
custom_headers: dict,
|
||||||
|
|
|
@ -216,7 +216,7 @@ def is_port_in_use(port):
|
||||||
envvar="SSL_CERTFILE_PATH",
|
envvar="SSL_CERTFILE_PATH",
|
||||||
)
|
)
|
||||||
@click.option("--local", is_flag=True, default=False, help="for local debugging")
|
@click.option("--local", is_flag=True, default=False, help="for local debugging")
|
||||||
def run_server(
|
def run_server( # noqa: PLR0915
|
||||||
host,
|
host,
|
||||||
port,
|
port,
|
||||||
api_base,
|
api_base,
|
||||||
|
|
|
@ -881,7 +881,7 @@ def _set_spend_logs_payload(
|
||||||
return prisma_client
|
return prisma_client
|
||||||
|
|
||||||
|
|
||||||
async def update_database(
|
async def update_database( # noqa: PLR0915
|
||||||
token,
|
token,
|
||||||
response_cost,
|
response_cost,
|
||||||
user_id=None,
|
user_id=None,
|
||||||
|
@ -1063,7 +1063,7 @@ async def update_database(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def update_cache(
|
async def update_cache( # noqa: PLR0915
|
||||||
token: Optional[str],
|
token: Optional[str],
|
||||||
user_id: Optional[str],
|
user_id: Optional[str],
|
||||||
end_user_id: Optional[str],
|
end_user_id: Optional[str],
|
||||||
|
@ -1492,7 +1492,7 @@ class ProxyConfig:
|
||||||
## INIT PROXY REDIS USAGE CLIENT ##
|
## INIT PROXY REDIS USAGE CLIENT ##
|
||||||
redis_usage_cache = litellm.cache.cache
|
redis_usage_cache = litellm.cache.cache
|
||||||
|
|
||||||
async def load_config(
|
async def load_config( # noqa: PLR0915
|
||||||
self, router: Optional[litellm.Router], config_file_path: str
|
self, router: Optional[litellm.Router], config_file_path: str
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
|
@ -2144,7 +2144,7 @@ class ProxyConfig:
|
||||||
added_models += 1
|
added_models += 1
|
||||||
return added_models
|
return added_models
|
||||||
|
|
||||||
async def _update_llm_router(
|
async def _update_llm_router( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
new_models: list,
|
new_models: list,
|
||||||
proxy_logging_obj: ProxyLogging,
|
proxy_logging_obj: ProxyLogging,
|
||||||
|
@ -2387,7 +2387,7 @@ def save_worker_config(**data):
|
||||||
os.environ["WORKER_CONFIG"] = json.dumps(data)
|
os.environ["WORKER_CONFIG"] = json.dumps(data)
|
||||||
|
|
||||||
|
|
||||||
async def initialize(
|
async def initialize( # noqa: PLR0915
|
||||||
model=None,
|
model=None,
|
||||||
alias=None,
|
alias=None,
|
||||||
api_base=None,
|
api_base=None,
|
||||||
|
@ -2728,7 +2728,7 @@ def giveup(e):
|
||||||
|
|
||||||
|
|
||||||
@router.on_event("startup")
|
@router.on_event("startup")
|
||||||
async def startup_event():
|
async def startup_event(): # noqa: PLR0915
|
||||||
global prisma_client, master_key, use_background_health_checks, llm_router, llm_model_list, general_settings, proxy_budget_rescheduler_min_time, proxy_budget_rescheduler_max_time, litellm_proxy_admin_name, db_writer_client, store_model_in_db, premium_user, _license_check
|
global prisma_client, master_key, use_background_health_checks, llm_router, llm_model_list, general_settings, proxy_budget_rescheduler_min_time, proxy_budget_rescheduler_max_time, litellm_proxy_admin_name, db_writer_client, store_model_in_db, premium_user, _license_check
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
@ -3078,7 +3078,7 @@ async def model_list(
|
||||||
giveup=giveup,
|
giveup=giveup,
|
||||||
logger=verbose_proxy_logger,
|
logger=verbose_proxy_logger,
|
||||||
)
|
)
|
||||||
async def chat_completion(
|
async def chat_completion( # noqa: PLR0915
|
||||||
request: Request,
|
request: Request,
|
||||||
fastapi_response: Response,
|
fastapi_response: Response,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
|
@ -3357,7 +3357,7 @@ async def chat_completion(
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
tags=["completions"],
|
tags=["completions"],
|
||||||
)
|
)
|
||||||
async def completion(
|
async def completion( # noqa: PLR0915
|
||||||
request: Request,
|
request: Request,
|
||||||
fastapi_response: Response,
|
fastapi_response: Response,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
|
@ -3580,7 +3580,7 @@ async def completion(
|
||||||
response_class=ORJSONResponse,
|
response_class=ORJSONResponse,
|
||||||
tags=["embeddings"],
|
tags=["embeddings"],
|
||||||
) # azure compatible endpoint
|
) # azure compatible endpoint
|
||||||
async def embeddings(
|
async def embeddings( # noqa: PLR0915
|
||||||
request: Request,
|
request: Request,
|
||||||
fastapi_response: Response,
|
fastapi_response: Response,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
|
@ -5469,7 +5469,7 @@ async def moderations(
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
response_model=AnthropicResponse,
|
response_model=AnthropicResponse,
|
||||||
)
|
)
|
||||||
async def anthropic_response(
|
async def anthropic_response( # noqa: PLR0915
|
||||||
anthropic_data: AnthropicMessagesRequest,
|
anthropic_data: AnthropicMessagesRequest,
|
||||||
fastapi_response: Response,
|
fastapi_response: Response,
|
||||||
request: Request,
|
request: Request,
|
||||||
|
@ -7278,7 +7278,7 @@ async def model_metrics_exceptions(
|
||||||
tags=["model management"],
|
tags=["model management"],
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
)
|
)
|
||||||
async def model_info_v1(
|
async def model_info_v1( # noqa: PLR0915
|
||||||
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
|
||||||
litellm_model_id: Optional[str] = None,
|
litellm_model_id: Optional[str] = None,
|
||||||
):
|
):
|
||||||
|
@ -7985,7 +7985,7 @@ async def fallback_login(request: Request):
|
||||||
@router.post(
|
@router.post(
|
||||||
"/login", include_in_schema=False
|
"/login", include_in_schema=False
|
||||||
) # hidden since this is a helper for UI sso login
|
) # hidden since this is a helper for UI sso login
|
||||||
async def login(request: Request):
|
async def login(request: Request): # noqa: PLR0915
|
||||||
global premium_user, general_settings
|
global premium_user, general_settings
|
||||||
try:
|
try:
|
||||||
import multipart
|
import multipart
|
||||||
|
@ -8653,7 +8653,7 @@ async def invitation_delete(
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
include_in_schema=False,
|
include_in_schema=False,
|
||||||
)
|
)
|
||||||
async def update_config(config_info: ConfigYAML):
|
async def update_config(config_info: ConfigYAML): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
For Admin UI - allows admin to update config via UI
|
For Admin UI - allows admin to update config via UI
|
||||||
|
|
||||||
|
@ -9156,7 +9156,7 @@ async def delete_config_general_settings(
|
||||||
include_in_schema=False,
|
include_in_schema=False,
|
||||||
dependencies=[Depends(user_api_key_auth)],
|
dependencies=[Depends(user_api_key_auth)],
|
||||||
)
|
)
|
||||||
async def get_config():
|
async def get_config(): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
For Admin UI - allows admin to view config via UI
|
For Admin UI - allows admin to view config via UI
|
||||||
# return the callbacks and the env variables for the callback
|
# return the callbacks and the env variables for the callback
|
||||||
|
|
|
@ -1597,7 +1597,7 @@ async def calculate_spend(request: SpendCalculateRequest):
|
||||||
200: {"model": List[LiteLLM_SpendLogs]},
|
200: {"model": List[LiteLLM_SpendLogs]},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
async def view_spend_logs(
|
async def view_spend_logs( # noqa: PLR0915
|
||||||
api_key: Optional[str] = fastapi.Query(
|
api_key: Optional[str] = fastapi.Query(
|
||||||
default=None,
|
default=None,
|
||||||
description="Get spend logs based on api key",
|
description="Get spend logs based on api key",
|
||||||
|
|
|
@ -1426,7 +1426,7 @@ class PrismaClient:
|
||||||
on_backoff=on_backoff, # specifying the function to call on backoff
|
on_backoff=on_backoff, # specifying the function to call on backoff
|
||||||
)
|
)
|
||||||
@log_to_opentelemetry
|
@log_to_opentelemetry
|
||||||
async def get_data(
|
async def get_data( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
token: Optional[Union[str, list]] = None,
|
token: Optional[Union[str, list]] = None,
|
||||||
user_id: Optional[str] = None,
|
user_id: Optional[str] = None,
|
||||||
|
@ -1780,7 +1780,7 @@ class PrismaClient:
|
||||||
max_time=10, # maximum total time to retry for
|
max_time=10, # maximum total time to retry for
|
||||||
on_backoff=on_backoff, # specifying the function to call on backoff
|
on_backoff=on_backoff, # specifying the function to call on backoff
|
||||||
)
|
)
|
||||||
async def insert_data(
|
async def insert_data( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
data: dict,
|
data: dict,
|
||||||
table_name: Literal[
|
table_name: Literal[
|
||||||
|
@ -1928,7 +1928,7 @@ class PrismaClient:
|
||||||
max_time=10, # maximum total time to retry for
|
max_time=10, # maximum total time to retry for
|
||||||
on_backoff=on_backoff, # specifying the function to call on backoff
|
on_backoff=on_backoff, # specifying the function to call on backoff
|
||||||
)
|
)
|
||||||
async def update_data(
|
async def update_data( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
token: Optional[str] = None,
|
token: Optional[str] = None,
|
||||||
data: dict = {},
|
data: dict = {},
|
||||||
|
@ -2617,7 +2617,7 @@ async def reset_budget(prisma_client: PrismaClient):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def update_spend(
|
async def update_spend( # noqa: PLR0915
|
||||||
prisma_client: PrismaClient,
|
prisma_client: PrismaClient,
|
||||||
db_writer_client: Optional[HTTPHandler],
|
db_writer_client: Optional[HTTPHandler],
|
||||||
proxy_logging_obj: ProxyLogging,
|
proxy_logging_obj: ProxyLogging,
|
||||||
|
|
|
@ -156,7 +156,7 @@ class Router:
|
||||||
leastbusy_logger: Optional[LeastBusyLoggingHandler] = None
|
leastbusy_logger: Optional[LeastBusyLoggingHandler] = None
|
||||||
lowesttpm_logger: Optional[LowestTPMLoggingHandler] = None
|
lowesttpm_logger: Optional[LowestTPMLoggingHandler] = None
|
||||||
|
|
||||||
def __init__(
|
def __init__( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_list: Optional[
|
model_list: Optional[
|
||||||
Union[List[DeploymentTypedDict], List[Dict[str, Any]]]
|
Union[List[DeploymentTypedDict], List[Dict[str, Any]]]
|
||||||
|
@ -2565,7 +2565,7 @@ class Router:
|
||||||
|
|
||||||
#### [END] ASSISTANTS API ####
|
#### [END] ASSISTANTS API ####
|
||||||
|
|
||||||
async def async_function_with_fallbacks(self, *args, **kwargs):
|
async def async_function_with_fallbacks(self, *args, **kwargs): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Try calling the function_with_retries
|
Try calling the function_with_retries
|
||||||
If it fails after num_retries, fall back to another model group
|
If it fails after num_retries, fall back to another model group
|
||||||
|
@ -4170,7 +4170,7 @@ class Router:
|
||||||
model_name = model_info["model_name"]
|
model_name = model_info["model_name"]
|
||||||
return self.get_model_list(model_name=model_name)
|
return self.get_model_list(model_name=model_name)
|
||||||
|
|
||||||
def _set_model_group_info(
|
def _set_model_group_info( # noqa: PLR0915
|
||||||
self, model_group: str, user_facing_model_group_name: str
|
self, model_group: str, user_facing_model_group_name: str
|
||||||
) -> Optional[ModelGroupInfo]:
|
) -> Optional[ModelGroupInfo]:
|
||||||
"""
|
"""
|
||||||
|
@ -4696,7 +4696,7 @@ class Router:
|
||||||
client = self.cache.get_cache(key=cache_key)
|
client = self.cache.get_cache(key=cache_key)
|
||||||
return client
|
return client
|
||||||
|
|
||||||
def _pre_call_checks(
|
def _pre_call_checks( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model: str,
|
model: str,
|
||||||
healthy_deployments: List,
|
healthy_deployments: List,
|
||||||
|
|
|
@ -209,7 +209,7 @@ class LowestCostLoggingHandler(CustomLogger):
|
||||||
)
|
)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def async_get_available_deployments(
|
async def async_get_available_deployments( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_group: str,
|
model_group: str,
|
||||||
healthy_deployments: list,
|
healthy_deployments: list,
|
||||||
|
|
|
@ -44,7 +44,9 @@ class LowestLatencyLoggingHandler(CustomLogger):
|
||||||
self.model_list = model_list
|
self.model_list = model_list
|
||||||
self.routing_args = RoutingArgs(**routing_args)
|
self.routing_args = RoutingArgs(**routing_args)
|
||||||
|
|
||||||
def log_success_event(self, kwargs, response_obj, start_time, end_time):
|
def log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
try:
|
try:
|
||||||
"""
|
"""
|
||||||
Update latency usage on success
|
Update latency usage on success
|
||||||
|
@ -244,7 +246,9 @@ class LowestLatencyLoggingHandler(CustomLogger):
|
||||||
)
|
)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
async def async_log_success_event(self, kwargs, response_obj, start_time, end_time):
|
async def async_log_success_event( # noqa: PLR0915
|
||||||
|
self, kwargs, response_obj, start_time, end_time
|
||||||
|
):
|
||||||
try:
|
try:
|
||||||
"""
|
"""
|
||||||
Update latency usage on success
|
Update latency usage on success
|
||||||
|
@ -375,7 +379,7 @@ class LowestLatencyLoggingHandler(CustomLogger):
|
||||||
)
|
)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def get_available_deployments(
|
def get_available_deployments( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_group: str,
|
model_group: str,
|
||||||
healthy_deployments: list,
|
healthy_deployments: list,
|
||||||
|
|
|
@ -166,7 +166,7 @@ class LowestTPMLoggingHandler(CustomLogger):
|
||||||
verbose_router_logger.debug(traceback.format_exc())
|
verbose_router_logger.debug(traceback.format_exc())
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def get_available_deployments(
|
def get_available_deployments( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_group: str,
|
model_group: str,
|
||||||
healthy_deployments: list,
|
healthy_deployments: list,
|
||||||
|
|
|
@ -318,7 +318,7 @@ class LowestTPMLoggingHandler_v2(CustomLogger):
|
||||||
)
|
)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _common_checks_available_deployment(
|
def _common_checks_available_deployment( # noqa: PLR0915
|
||||||
self,
|
self,
|
||||||
model_group: str,
|
model_group: str,
|
||||||
healthy_deployments: list,
|
healthy_deployments: list,
|
||||||
|
|
|
@ -48,7 +48,7 @@ def should_initialize_sync_client(
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def set_client(litellm_router_instance: LitellmRouter, model: dict):
|
def set_client(litellm_router_instance: LitellmRouter, model: dict): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
- Initializes Azure/OpenAI clients. Stores them in cache, b/c of this - https://github.com/BerriAI/litellm/issues/1278
|
- Initializes Azure/OpenAI clients. Stores them in cache, b/c of this - https://github.com/BerriAI/litellm/issues/1278
|
||||||
- Initializes Semaphore for client w/ rpm. Stores them in cache. b/c of this - https://github.com/BerriAI/litellm/issues/2994
|
- Initializes Semaphore for client w/ rpm. Stores them in cache. b/c of this - https://github.com/BerriAI/litellm/issues/2994
|
||||||
|
|
|
@ -67,7 +67,7 @@ def get_secret_str(
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
def get_secret(
|
def get_secret( # noqa: PLR0915
|
||||||
secret_name: str,
|
secret_name: str,
|
||||||
default_value: Optional[Union[str, bool]] = None,
|
default_value: Optional[Union[str, bool]] = None,
|
||||||
):
|
):
|
||||||
|
|
|
@ -328,7 +328,7 @@ def custom_llm_setup():
|
||||||
litellm._custom_providers.append(custom_llm["provider"])
|
litellm._custom_providers.append(custom_llm["provider"])
|
||||||
|
|
||||||
|
|
||||||
def function_setup(
|
def function_setup( # noqa: PLR0915
|
||||||
original_function: str, rules_obj, start_time, *args, **kwargs
|
original_function: str, rules_obj, start_time, *args, **kwargs
|
||||||
): # just run once to check if user wants to send their data anywhere - PostHog/Sentry/Slack/etc.
|
): # just run once to check if user wants to send their data anywhere - PostHog/Sentry/Slack/etc.
|
||||||
### NOTICES ###
|
### NOTICES ###
|
||||||
|
@ -605,7 +605,7 @@ def function_setup(
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
def client(original_function):
|
def client(original_function): # noqa: PLR0915
|
||||||
global liteDebuggerClient
|
global liteDebuggerClient
|
||||||
rules_obj = Rules()
|
rules_obj = Rules()
|
||||||
|
|
||||||
|
@ -721,7 +721,7 @@ def client(original_function):
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
@wraps(original_function)
|
@wraps(original_function)
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs): # noqa: PLR0915
|
||||||
# DO NOT MOVE THIS. It always needs to run first
|
# DO NOT MOVE THIS. It always needs to run first
|
||||||
# Check if this is an async function. If so only execute the async function
|
# Check if this is an async function. If so only execute the async function
|
||||||
if (
|
if (
|
||||||
|
@ -1007,7 +1007,7 @@ def client(original_function):
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
@wraps(original_function)
|
@wraps(original_function)
|
||||||
async def wrapper_async(*args, **kwargs):
|
async def wrapper_async(*args, **kwargs): # noqa: PLR0915
|
||||||
print_args_passed_to_litellm(original_function, args, kwargs)
|
print_args_passed_to_litellm(original_function, args, kwargs)
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.datetime.now()
|
||||||
result = None
|
result = None
|
||||||
|
@ -1289,7 +1289,7 @@ def decode(model="", tokens: List[int] = [], custom_tokenizer: Optional[dict] =
|
||||||
return dec
|
return dec
|
||||||
|
|
||||||
|
|
||||||
def openai_token_counter(
|
def openai_token_counter( # noqa: PLR0915
|
||||||
messages: Optional[list] = None,
|
messages: Optional[list] = None,
|
||||||
model="gpt-3.5-turbo-0613",
|
model="gpt-3.5-turbo-0613",
|
||||||
text: Optional[str] = None,
|
text: Optional[str] = None,
|
||||||
|
@ -1930,7 +1930,7 @@ def _update_dictionary(existing_dict: Dict, new_dict: dict) -> dict:
|
||||||
return existing_dict
|
return existing_dict
|
||||||
|
|
||||||
|
|
||||||
def register_model(model_cost: Union[str, dict]):
|
def register_model(model_cost: Union[str, dict]): # noqa: PLR0915
|
||||||
"""
|
"""
|
||||||
Register new / Override existing models (and their pricing) to specific providers.
|
Register new / Override existing models (and their pricing) to specific providers.
|
||||||
Provide EITHER a model cost dictionary or a url to a hosted json blob
|
Provide EITHER a model cost dictionary or a url to a hosted json blob
|
||||||
|
@ -2253,7 +2253,7 @@ def get_optional_params_image_gen(
|
||||||
return optional_params
|
return optional_params
|
||||||
|
|
||||||
|
|
||||||
def get_optional_params_embeddings(
|
def get_optional_params_embeddings( # noqa: PLR0915
|
||||||
# 2 optional params
|
# 2 optional params
|
||||||
model: str,
|
model: str,
|
||||||
user: Optional[str] = None,
|
user: Optional[str] = None,
|
||||||
|
@ -2469,7 +2469,7 @@ def _remove_strict_from_schema(schema):
|
||||||
return schema
|
return schema
|
||||||
|
|
||||||
|
|
||||||
def get_optional_params(
|
def get_optional_params( # noqa: PLR0915
|
||||||
# use the openai defaults
|
# use the openai defaults
|
||||||
# https://platform.openai.com/docs/api-reference/chat/create
|
# https://platform.openai.com/docs/api-reference/chat/create
|
||||||
model: str,
|
model: str,
|
||||||
|
@ -4077,7 +4077,7 @@ def get_first_chars_messages(kwargs: dict) -> str:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
def get_supported_openai_params(
|
def get_supported_openai_params( # noqa: PLR0915
|
||||||
model: str,
|
model: str,
|
||||||
custom_llm_provider: Optional[str] = None,
|
custom_llm_provider: Optional[str] = None,
|
||||||
request_type: Literal["chat_completion", "embeddings"] = "chat_completion",
|
request_type: Literal["chat_completion", "embeddings"] = "chat_completion",
|
||||||
|
@ -4573,7 +4573,9 @@ def _get_model_info_from_model_cost(key: str) -> dict:
|
||||||
return litellm.model_cost[key]
|
return litellm.model_cost[key]
|
||||||
|
|
||||||
|
|
||||||
def get_model_info(model: str, custom_llm_provider: Optional[str] = None) -> ModelInfo:
|
def get_model_info( # noqa: PLR0915
|
||||||
|
model: str, custom_llm_provider: Optional[str] = None
|
||||||
|
) -> ModelInfo:
|
||||||
"""
|
"""
|
||||||
Get a dict for the maximum tokens (context window), input_cost_per_token, output_cost_per_token for a given model.
|
Get a dict for the maximum tokens (context window), input_cost_per_token, output_cost_per_token for a given model.
|
||||||
|
|
||||||
|
@ -5116,7 +5118,7 @@ def create_proxy_transport_and_mounts():
|
||||||
return sync_proxy_mounts, async_proxy_mounts
|
return sync_proxy_mounts, async_proxy_mounts
|
||||||
|
|
||||||
|
|
||||||
def validate_environment(
|
def validate_environment( # noqa: PLR0915
|
||||||
model: Optional[str] = None, api_key: Optional[str] = None
|
model: Optional[str] = None, api_key: Optional[str] = None
|
||||||
) -> dict:
|
) -> dict:
|
||||||
"""
|
"""
|
||||||
|
@ -5605,7 +5607,7 @@ def _handle_invalid_parallel_tool_calls(
|
||||||
return tool_calls
|
return tool_calls
|
||||||
|
|
||||||
|
|
||||||
def convert_to_model_response_object(
|
def convert_to_model_response_object( # noqa: PLR0915
|
||||||
response_object: Optional[dict] = None,
|
response_object: Optional[dict] = None,
|
||||||
model_response_object: Optional[
|
model_response_object: Optional[
|
||||||
Union[
|
Union[
|
||||||
|
@ -7170,7 +7172,7 @@ class CustomStreamWrapper:
|
||||||
is_empty = False
|
is_empty = False
|
||||||
return is_empty
|
return is_empty
|
||||||
|
|
||||||
def chunk_creator(self, chunk): # type: ignore
|
def chunk_creator(self, chunk): # type: ignore # noqa: PLR0915
|
||||||
model_response = self.model_response_creator()
|
model_response = self.model_response_creator()
|
||||||
response_obj = {}
|
response_obj = {}
|
||||||
try:
|
try:
|
||||||
|
@ -7881,7 +7883,7 @@ class CustomStreamWrapper:
|
||||||
model_response.choices[0].finish_reason = "tool_calls"
|
model_response.choices[0].finish_reason = "tool_calls"
|
||||||
return model_response
|
return model_response
|
||||||
|
|
||||||
def __next__(self):
|
def __next__(self): # noqa: PLR0915
|
||||||
cache_hit = False
|
cache_hit = False
|
||||||
if (
|
if (
|
||||||
self.custom_llm_provider is not None
|
self.custom_llm_provider is not None
|
||||||
|
@ -8016,7 +8018,7 @@ class CustomStreamWrapper:
|
||||||
|
|
||||||
return self.completion_stream
|
return self.completion_stream
|
||||||
|
|
||||||
async def __anext__(self):
|
async def __anext__(self): # noqa: PLR0915
|
||||||
cache_hit = False
|
cache_hit = False
|
||||||
if (
|
if (
|
||||||
self.custom_llm_provider is not None
|
self.custom_llm_provider is not None
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
ignore = ["F405", "E402", "F401", "E501", "F403"]
|
ignore = ["F405", "E402", "F401", "E501", "F403"]
|
||||||
extend-select = ["E501"]
|
extend-select = ["E501", "PLR0915"]
|
||||||
line-length = 120
|
line-length = 120
|
||||||
exclude = ["litellm/types/*", "litellm/__init__.py", "litellm/proxy/example_config_yaml/*"]
|
exclude = ["litellm/types/*", "litellm/__init__.py", "litellm/proxy/example_config_yaml/*"]
|
Loading…
Add table
Add a link
Reference in a new issue