feat - spend by provider on UI

This commit is contained in:
Ishaan Jaff 2024-05-25 08:36:53 -07:00
parent b78ddfc5e4
commit fcaa4408c0

View file

@ -5919,6 +5919,8 @@ async def get_global_spend_provider(
} }
] ]
""" """
from collections import defaultdict
if start_date is None or end_date is None: if start_date is None or end_date is None:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST, status_code=status.HTTP_400_BAD_REQUEST,
@ -5941,7 +5943,7 @@ async def get_global_spend_provider(
model_id, model_id,
SUM(spend) AS spend SUM(spend) AS spend
FROM "LiteLLM_SpendLogs" FROM "LiteLLM_SpendLogs"
WHERE "startTime" BETWEEN $1::date AND $2::date WHERE "startTime" BETWEEN $1::date AND $2::date AND length(model_id) > 0
GROUP BY model_id GROUP BY model_id
""" """
@ -5957,6 +5959,7 @@ async def get_global_spend_provider(
# we use the in memory router for this # we use the in memory router for this
ui_response = [] ui_response = []
provider_spend_mapping: defaultdict = defaultdict(int)
for row in db_response: for row in db_response:
_model_id = row["model_id"] _model_id = row["model_id"]
_provider = "Unknown" _provider = "Unknown"
@ -5970,15 +5973,13 @@ async def get_global_spend_provider(
api_base=_deployment.litellm_params.api_base, api_base=_deployment.litellm_params.api_base,
litellm_params=_deployment.litellm_params, litellm_params=_deployment.litellm_params,
) )
provider_spend_mapping[_provider] += row["spend"]
except: except:
pass pass
ui_response.append( for provider, spend in provider_spend_mapping.items():
{ ui_response.append({"provider": provider, "spend": spend})
"provider": _provider,
"spend": row["spend"],
}
)
return ui_response return ui_response
except Exception as e: except Exception as e: