ensure passthrough_logging_payload is filled in kwargs

This commit is contained in:
Ishaan Jaff 2025-04-21 18:12:20 -07:00
parent 4a50cf10fb
commit d1536a3a01
3 changed files with 19 additions and 1 deletions

View file

@ -23,6 +23,7 @@ from starlette.datastructures import UploadFile as StarletteUploadFile
import litellm import litellm
from litellm._logging import verbose_proxy_logger from litellm._logging import verbose_proxy_logger
from litellm.integrations.custom_logger import CustomLogger from litellm.integrations.custom_logger import CustomLogger
from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
from litellm.litellm_core_utils.safe_json_dumps import safe_dumps from litellm.litellm_core_utils.safe_json_dumps import safe_dumps
from litellm.llms.custom_httpx.http_handler import get_async_httpx_client from litellm.llms.custom_httpx.http_handler import get_async_httpx_client
from litellm.proxy._types import ( from litellm.proxy._types import (
@ -38,11 +39,14 @@ from litellm.proxy.common_request_processing import ProxyBaseLLMRequestProcessin
from litellm.proxy.common_utils.http_parsing_utils import _read_request_body from litellm.proxy.common_utils.http_parsing_utils import _read_request_body
from litellm.secret_managers.main import get_secret_str from litellm.secret_managers.main import get_secret_str
from litellm.types.llms.custom_http import httpxSpecialProvider from litellm.types.llms.custom_http import httpxSpecialProvider
from litellm.types.passthrough_endpoints.pass_through_endpoints import (
EndpointType,
PassthroughStandardLoggingPayload,
)
from litellm.types.utils import StandardLoggingUserAPIKeyMetadata from litellm.types.utils import StandardLoggingUserAPIKeyMetadata
from .streaming_handler import PassThroughStreamingHandler from .streaming_handler import PassThroughStreamingHandler
from .success_handler import PassThroughEndpointLogging from .success_handler import PassThroughEndpointLogging
from .types import EndpointType, PassthroughStandardLoggingPayload
router = APIRouter() router = APIRouter()
@ -537,6 +541,7 @@ async def pass_through_request( # noqa: PLR0915
passthrough_logging_payload=passthrough_logging_payload, passthrough_logging_payload=passthrough_logging_payload,
litellm_call_id=litellm_call_id, litellm_call_id=litellm_call_id,
request=request, request=request,
logging_obj=logging_obj,
) )
# done for supporting 'parallel_request_limiter.py' with pass-through endpoints # done for supporting 'parallel_request_limiter.py' with pass-through endpoints
logging_obj.update_environment_variables( logging_obj.update_environment_variables(
@ -741,6 +746,7 @@ def _init_kwargs_for_pass_through_endpoint(
request: Request, request: Request,
user_api_key_dict: UserAPIKeyAuth, user_api_key_dict: UserAPIKeyAuth,
passthrough_logging_payload: PassthroughStandardLoggingPayload, passthrough_logging_payload: PassthroughStandardLoggingPayload,
logging_obj: LiteLLMLoggingObj,
_parsed_body: Optional[dict] = None, _parsed_body: Optional[dict] = None,
litellm_call_id: Optional[str] = None, litellm_call_id: Optional[str] = None,
) -> dict: ) -> dict:
@ -775,6 +781,11 @@ def _init_kwargs_for_pass_through_endpoint(
"litellm_call_id": litellm_call_id, "litellm_call_id": litellm_call_id,
"passthrough_logging_payload": passthrough_logging_payload, "passthrough_logging_payload": passthrough_logging_payload,
} }
logging_obj.model_call_details["passthrough_logging_payload"] = (
passthrough_logging_payload
)
return kwargs return kwargs

View file

@ -7,6 +7,9 @@ import httpx
from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj from litellm.litellm_core_utils.litellm_logging import Logging as LiteLLMLoggingObj
from litellm.proxy._types import PassThroughEndpointLoggingResultValues from litellm.proxy._types import PassThroughEndpointLoggingResultValues
from litellm.types.passthrough_endpoints.pass_through_endpoints import (
PassthroughStandardLoggingPayload,
)
from litellm.types.utils import StandardPassThroughResponseObject from litellm.types.utils import StandardPassThroughResponseObject
from litellm.utils import executor as thread_pool_executor from litellm.utils import executor as thread_pool_executor
@ -92,11 +95,15 @@ class PassThroughEndpointLogging:
end_time: datetime, end_time: datetime,
cache_hit: bool, cache_hit: bool,
request_body: dict, request_body: dict,
passthrough_logging_payload: PassthroughStandardLoggingPayload,
**kwargs, **kwargs,
): ):
standard_logging_response_object: Optional[ standard_logging_response_object: Optional[
PassThroughEndpointLoggingResultValues PassThroughEndpointLoggingResultValues
] = None ] = None
logging_obj.model_call_details["passthrough_logging_payload"] = (
passthrough_logging_payload
)
if self.is_vertex_route(url_route): if self.is_vertex_route(url_route):
vertex_passthrough_logging_handler_result = ( vertex_passthrough_logging_handler_result = (
VertexPassthroughLoggingHandler.vertex_passthrough_handler( VertexPassthroughLoggingHandler.vertex_passthrough_handler(