fix use standard logging payload for getting response cost

This commit is contained in:
Ishaan Jaff 2024-10-31 18:30:58 +05:30
parent 9647c6158e
commit 9c1270fa0e

View file

@ -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"