diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index be2cdd6ef..5d74b9ded 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -421,6 +421,8 @@ class LiteLLM_UserTable(LiteLLMBase): user_id: str max_budget: Optional[float] spend: float = 0.0 + model_max_budget: Optional[Dict] = {} + model_spend: Optional[Dict] = {} user_email: Optional[str] models: list = [] diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 7d30c959f..72bb3b25a 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -940,6 +940,7 @@ async def update_database( # track cost per model, for the given user spend_per_model = existing_spend_obj.model_spend or {} current_model = kwargs.get("model") + if current_model is not None and spend_per_model is not None: if spend_per_model.get(current_model) is None: spend_per_model[current_model] = response_cost @@ -953,7 +954,9 @@ async def update_database( key=id, value=existing_spend_obj.json() ) - verbose_proxy_logger.debug(f"new cost: {existing_spend_obj.spend}") + verbose_proxy_logger.debug( + f"user - new cost: {existing_spend_obj.spend}, user_id: {id}" + ) data_list.append(existing_spend_obj) # Update the cost column for the given user id