mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 18:54:30 +00:00
Litellm dev 12 20 2024 p3 (#7339)
* fix(proxy_track_cost_callback.py): log to db if only end user param given * fix: allows for jwt-auth based end user id spend tracking to work * fix(utils.py): fix 'get_end_user_id_for_cost_tracking' to use 'user_api_key_end_user_id' more stable - works with jwt-auth based end user tracking as well * test(test_jwt.py): add e2e unit test to confirm end user cost tracking works for spend logs * test: update test to use end_user api key hash param * fix(langfuse.py): support end user cost tracking via jwt auth + langfuse logs end user to langfuse if decoded from jwt token * fix: fix linting errors * test: fix test * test: fix test * fix: fix end user id extraction * fix: run test earlier
This commit is contained in:
parent
6107f9f3f3
commit
522da384b6
13 changed files with 149 additions and 36 deletions
|
@ -6269,7 +6269,13 @@ def get_end_user_id_for_cost_tracking(
|
|||
|
||||
service_type: "litellm_logging" or "prometheus" - used to allow prometheus only disable cost tracking.
|
||||
"""
|
||||
proxy_server_request = litellm_params.get("proxy_server_request") or {}
|
||||
_metadata = cast(dict, litellm_params.get("metadata", {}) or {})
|
||||
|
||||
end_user_id = cast(
|
||||
Optional[str],
|
||||
litellm_params.get("user_api_key_end_user_id")
|
||||
or _metadata.get("user_api_key_end_user_id"),
|
||||
)
|
||||
if litellm.disable_end_user_cost_tracking:
|
||||
return None
|
||||
if (
|
||||
|
@ -6277,7 +6283,7 @@ def get_end_user_id_for_cost_tracking(
|
|||
and litellm.disable_end_user_cost_tracking_prometheus_only
|
||||
):
|
||||
return None
|
||||
return proxy_server_request.get("body", {}).get("user", None)
|
||||
return end_user_id
|
||||
|
||||
|
||||
def is_prompt_caching_valid_prompt(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue