diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 402063177a6..b871df6f9f8 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -265,6 +265,7 @@ from litellm.types.llms.anthropic import ( ) from litellm.types.llms.openai import HttpxBinaryResponseContent from litellm.types.router import RouterGeneralSettings +from litellm.types.utils import StandardLoggingPayload try: from litellm._version import version @@ -775,10 +776,14 @@ async def _PROXY_track_cost_callback( org_id = metadata.get("user_api_key_org_id", None) key_alias = metadata.get("user_api_key_alias", None) end_user_max_budget = metadata.get("user_api_end_user_max_budget", None) - if kwargs.get("response_cost", None) is not None: - response_cost = kwargs["response_cost"] + standard_logging_payload: Optional[StandardLoggingPayload] = kwargs.get( + "standard_logging_object", None + ) + if standard_logging_payload is None: + raise ValueError("Standard logging payload is missing from kwargs") + response_cost = standard_logging_payload.get("response_cost") + if response_cost is not None: user_api_key = metadata.get("user_api_key", None) - if kwargs.get("cache_hit", False) is True: response_cost = 0.0 verbose_proxy_logger.info( @@ -838,7 +843,7 @@ async def _PROXY_track_cost_callback( f"Cost tracking failed for model={model}.\nDebug info - {cost_tracking_failure_debug_info}\nAdd custom pricing - https://docs.litellm.ai/docs/proxy/custom_pricing" ) except Exception as e: - error_msg = f"error in tracking cost callback - {traceback.format_exc()}" + error_msg = f"Error in tracking cost callback - {str(e)}\n Traceback:{traceback.format_exc()}" model = kwargs.get("model", "") metadata = kwargs.get("litellm_params", {}).get("metadata", {}) error_msg += f"\n Args to _PROXY_track_cost_callback\n model: {model}\n metadata: {metadata}\n"