forked from phoenix/litellm-mirror
(feat) use user_id passed to request - cost track
This commit is contained in:
parent
697c511e76
commit
16f3d7e0ed
1 changed files with 14 additions and 3 deletions
|
@ -523,19 +523,27 @@ async def track_cost_callback(
|
||||||
verbose_proxy_logger.debug(
|
verbose_proxy_logger.debug(
|
||||||
f"kwargs stream: {kwargs.get('stream', None)} + complete streaming response: {kwargs.get('complete_streaming_response', None)}"
|
f"kwargs stream: {kwargs.get('stream', None)} + complete streaming response: {kwargs.get('complete_streaming_response', None)}"
|
||||||
)
|
)
|
||||||
|
litellm_params = kwargs.get("litellm_params", {})
|
||||||
|
proxy_server_request = litellm_params.get("proxy_server_request")
|
||||||
|
user_id = proxy_server_request.get("body", {}).get("user", None)
|
||||||
if "complete_streaming_response" in kwargs:
|
if "complete_streaming_response" in kwargs:
|
||||||
# for tracking streaming cost we pass the "messages" and the output_text to litellm.completion_cost
|
# for tracking streaming cost we pass the "messages" and the output_text to litellm.completion_cost
|
||||||
completion_response = kwargs["complete_streaming_response"]
|
completion_response = kwargs["complete_streaming_response"]
|
||||||
response_cost = litellm.completion_cost(
|
response_cost = litellm.completion_cost(
|
||||||
completion_response=completion_response
|
completion_response=completion_response
|
||||||
)
|
)
|
||||||
verbose_proxy_logger.debug(f"streaming response_cost {response_cost}")
|
|
||||||
user_api_key = kwargs["litellm_params"]["metadata"].get(
|
user_api_key = kwargs["litellm_params"]["metadata"].get(
|
||||||
"user_api_key", None
|
"user_api_key", None
|
||||||
)
|
)
|
||||||
user_id = kwargs["litellm_params"]["metadata"].get(
|
|
||||||
|
user_id = user_id or kwargs["litellm_params"]["metadata"].get(
|
||||||
"user_api_key_user_id", None
|
"user_api_key_user_id", None
|
||||||
)
|
)
|
||||||
|
|
||||||
|
verbose_proxy_logger.debug(
|
||||||
|
f"streaming response_cost {response_cost}, for user_id {user_id}"
|
||||||
|
)
|
||||||
if user_api_key and (
|
if user_api_key and (
|
||||||
prisma_client is not None or custom_db_client is not None
|
prisma_client is not None or custom_db_client is not None
|
||||||
):
|
):
|
||||||
|
@ -555,9 +563,12 @@ async def track_cost_callback(
|
||||||
user_api_key = kwargs["litellm_params"]["metadata"].get(
|
user_api_key = kwargs["litellm_params"]["metadata"].get(
|
||||||
"user_api_key", None
|
"user_api_key", None
|
||||||
)
|
)
|
||||||
user_id = kwargs["litellm_params"]["metadata"].get(
|
user_id = user_id or kwargs["litellm_params"]["metadata"].get(
|
||||||
"user_api_key_user_id", None
|
"user_api_key_user_id", None
|
||||||
)
|
)
|
||||||
|
verbose_proxy_logger.debug(
|
||||||
|
f"response_cost {response_cost}, for user_id {user_id}"
|
||||||
|
)
|
||||||
if user_api_key and (
|
if user_api_key and (
|
||||||
prisma_client is not None or custom_db_client is not None
|
prisma_client is not None or custom_db_client is not None
|
||||||
):
|
):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue