From 3f8a5b3ef636290560c7954bcfe74bfc123cf5a4 Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Sat, 28 Sep 2024 19:22:37 -0700 Subject: [PATCH] fix(parallel_request_limiter.py): make sure hidden params is dict before dereferencing --- litellm/proxy/hooks/parallel_request_limiter.py | 3 +++ litellm/proxy/proxy_server.py | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/hooks/parallel_request_limiter.py b/litellm/proxy/hooks/parallel_request_limiter.py index 7af2a409c5..55ea06e74d 100644 --- a/litellm/proxy/hooks/parallel_request_limiter.py +++ b/litellm/proxy/hooks/parallel_request_limiter.py @@ -4,6 +4,7 @@ from datetime import datetime, timedelta from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union from fastapi import HTTPException +from pydantic import BaseModel import litellm from litellm import ModelResponse @@ -791,6 +792,8 @@ class _PROXY_MaxParallelRequestsHandler(CustomLogger): key_tpm_limit = user_api_key_dict.tpm_limit _hidden_params = getattr(response, "_hidden_params", {}) or {} + if isinstance(_hidden_params, BaseModel): + _hidden_params = _hidden_params.model_dump() _additional_headers = _hidden_params.get("additional_headers", {}) or {} if key_remaining_rpm_limit is not None: _additional_headers["x-ratelimit-remaining-requests"] = ( diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 893ca45072..e80096522f 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -3574,12 +3574,11 @@ async def completion( await proxy_logging_obj.post_call_failure_hook( user_api_key_dict=user_api_key_dict, original_exception=e, request_data=data ) - verbose_proxy_logger.error( + verbose_proxy_logger.exception( "litellm.proxy.proxy_server.completion(): Exception occured - {}".format( str(e) ) ) - verbose_proxy_logger.debug(traceback.format_exc()) error_msg = f"{str(e)}" raise ProxyException( message=getattr(e, "message", error_msg),