fix(proxy/_types.py): add missing comma for /v2/rerank (#10861)

* fix(proxy/_types.py): add missing comma for `/v2/rerank`

Enables non admins to access `/v2/rerank` endpoint

* fix(proxy_track_cost_callback.py): add patch to handle scenario where both 'litellm_metadata' and 'metadata' exist
This commit is contained in:
Krish Dholakia 2025-05-15 21:37:46 -07:00 • committed by GitHub
parent dc16e47df6
commit 32478de7a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 36 additions and 1 deletions

View file

@ -70,6 +70,22 @@ def remove_index_from_tool_calls(
return
def add_missing_spend_metadata_to_litellm_metadata(
litellm_metadata: dict, metadata: dict
) -> dict:
"""
Helper to get litellm metadata for spend tracking
PATCH for issue where both `litellm_metadata` and `metadata` are present in the kwargs
and user_api_key values are in 'metadata'.
"""
potential_spend_tracking_metadata_substring = "user_api_key"
for key, value in metadata.items():
if potential_spend_tracking_metadata_substring in key:
litellm_metadata[key] = value
return litellm_metadata
def get_litellm_metadata_from_kwargs(kwargs: dict):
"""
Helper to get litellm metadata from all litellm request kwargs
@ -80,6 +96,10 @@ def get_litellm_metadata_from_kwargs(kwargs: dict):
if litellm_params:
metadata = litellm_params.get("metadata", {})
litellm_metadata = litellm_params.get("litellm_metadata", {})
if litellm_metadata and metadata:
litellm_metadata = add_missing_spend_metadata_to_litellm_metadata(
litellm_metadata, metadata
)
if litellm_metadata:
return litellm_metadata
elif metadata:

View file

@ -295,7 +295,7 @@ class LiteLLMRoutes(enum.Enum):
# rerank
"/rerank",
"/v1/rerank",
"/v2/rerank"
"/v2/rerank",
# realtime
"/realtime",
"/v1/realtime",

View file

@ -20,3 +20,18 @@ def test_get_litellm_metadata_from_kwargs():
},
}
assert get_litellm_metadata_from_kwargs(kwargs) == {"user_api_key": "1234567890"}
def test_add_missing_spend_metadata_to_litellm_metadata():
litellm_metadata = {"test_key": "test_value"}
metadata = {"user_api_key_hash_value": "1234567890"}
kwargs = {
"litellm_params": {
"litellm_metadata": litellm_metadata,
"metadata": metadata,
},
}
assert get_litellm_metadata_from_kwargs(kwargs) == {
"test_key": "test_value",
"user_api_key_hash_value": "1234567890",
}