fix(parallel_request_limiter.py): make sure hidden params is dict before dereferencing

This commit is contained in:
Krrish Dholakia 2024-09-28 19:22:37 -07:00
parent 87379e57ef
commit 6cb0842144
2 changed files with 4 additions and 2 deletions

View file

@ -4,6 +4,7 @@ from datetime import datetime, timedelta
from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union
from fastapi import HTTPException from fastapi import HTTPException
from pydantic import BaseModel
import litellm import litellm
from litellm import ModelResponse from litellm import ModelResponse
@ -791,6 +792,8 @@ class _PROXY_MaxParallelRequestsHandler(CustomLogger):
key_tpm_limit = user_api_key_dict.tpm_limit key_tpm_limit = user_api_key_dict.tpm_limit
_hidden_params = getattr(response, "_hidden_params", {}) or {} _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 {} _additional_headers = _hidden_params.get("additional_headers", {}) or {}
if key_remaining_rpm_limit is not None: if key_remaining_rpm_limit is not None:
_additional_headers["x-ratelimit-remaining-requests"] = ( _additional_headers["x-ratelimit-remaining-requests"] = (

View file

@ -3574,12 +3574,11 @@ async def completion(
await proxy_logging_obj.post_call_failure_hook( await proxy_logging_obj.post_call_failure_hook(
user_api_key_dict=user_api_key_dict, original_exception=e, request_data=data 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( "litellm.proxy.proxy_server.completion(): Exception occured - {}".format(
str(e) str(e)
) )
) )
verbose_proxy_logger.debug(traceback.format_exc())
error_msg = f"{str(e)}" error_msg = f"{str(e)}"
raise ProxyException( raise ProxyException(
message=getattr(e, "message", error_msg), message=getattr(e, "message", error_msg),