From d0d923694777a6f3babb3a6c396645fbe6a80bea Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Fri, 28 Feb 2025 10:09:16 -0800 Subject: [PATCH] working, track raw request --- litellm/proxy/hooks/proxy_track_cost_callback.py | 8 ++++++-- litellm/proxy/spend_tracking/spend_tracking_utils.py | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/litellm/proxy/hooks/proxy_track_cost_callback.py b/litellm/proxy/hooks/proxy_track_cost_callback.py index 3ed36cce29b..eadd94586ea 100644 --- a/litellm/proxy/hooks/proxy_track_cost_callback.py +++ b/litellm/proxy/hooks/proxy_track_cost_callback.py @@ -48,9 +48,13 @@ class _ProxyDBLogger(CustomLogger): ) _metadata["user_api_key"] = user_api_key_dict.api_key _metadata["status"] = "failure" + existing_metadata: dict = request_data.get("metadata", None) or {} + existing_metadata.update(_metadata) + existing_metadata["proxy_server_request"] = ( + request_data.get("proxy_server_request", {}) or {} + ) request_data["litellm_params"] = {} - request_data["litellm_params"]["metadata"] = _metadata - # print("failure kwargs=", json.dumps(request_data, indent=4, default=str)) + request_data["litellm_params"]["metadata"] = existing_metadata await update_database( token=user_api_key_dict.api_key, diff --git a/litellm/proxy/spend_tracking/spend_tracking_utils.py b/litellm/proxy/spend_tracking/spend_tracking_utils.py index edeaf5f3298..54b419afba4 100644 --- a/litellm/proxy/spend_tracking/spend_tracking_utils.py +++ b/litellm/proxy/spend_tracking/spend_tracking_utils.py @@ -298,15 +298,15 @@ def _get_messages_for_spend_logs_payload( standard_logging_payload: Optional[StandardLoggingPayload], metadata: Optional[dict] = None, ) -> str: - if standard_logging_payload is None: - return "{}" if _should_store_prompts_and_responses_in_spend_logs(): metadata = metadata or {} if metadata.get("status", None) == "failure": _proxy_server_request = metadata.get("proxy_server_request", {}) - _request_body = _proxy_server_request.get("request", {}) - return json.dumps(_request_body) + _request_body = _proxy_server_request.get("body", {}) or {} + return json.dumps(_request_body, default=str) else: + if standard_logging_payload is None: + return "{}" return json.dumps(standard_logging_payload.get("messages", {})) return "{}"