mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-11 08:38:24 +00:00
fix(proxy): stop forwarding proxy metadata to OpenAI under preview features
With enable_preview_features on, get_requester_metadata fell back to the full proxy metadata dict whenever the caller's requester_metadata had no string values, so OpenAI received user_api_key_hash, the caller IP and user agent. Return only the caller's requester_metadata when it is present
This commit is contained in:
parent
f3d53a9b50
commit
0cd4ddca01
2 changed files with 15 additions and 3 deletions
|
|
@ -11012,9 +11012,7 @@ def get_requester_metadata(metadata: Mapping[str, object]):
|
|||
|
||||
requester_metadata: Final = metadata.get("requester_metadata")
|
||||
if isinstance(requester_metadata, dict):
|
||||
cleaned_metadata = add_openai_metadata(requester_metadata)
|
||||
if cleaned_metadata:
|
||||
return cleaned_metadata
|
||||
return add_openai_metadata(requester_metadata) or None
|
||||
|
||||
cleaned_metadata = add_openai_metadata(metadata)
|
||||
if cleaned_metadata:
|
||||
|
|
|
|||
|
|
@ -57,6 +57,20 @@ def test_get_requester_metadata_returns_none_for_empty():
|
|||
assert get_requester_metadata(metadata) is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("metadata", "expected"),
|
||||
[
|
||||
({"user_api_key_hash": "h", "requester_metadata": {"headers": {"host": "proxy"}}}, None),
|
||||
({"user_api_key_hash": "h", "requester_metadata": {"team": "a"}}, {"team": "a"}),
|
||||
({"team": "a"}, {"team": "a"}),
|
||||
],
|
||||
)
|
||||
def test_get_requester_metadata_forwards_only_caller_metadata(
|
||||
metadata: dict[str, object], expected: dict[str, str] | None
|
||||
) -> None:
|
||||
assert get_requester_metadata(metadata) == expected
|
||||
|
||||
|
||||
@patch("litellm.main.openai_chat_completions.completion")
|
||||
def test_requester_metadata_forwarded_to_openai(mock_completion):
|
||||
mock_completion.return_value = MagicMock()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue