mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-11 08:38:24 +00:00
Merge 85a7a9a433 into 60fc121ce8
This commit is contained in:
commit
8f0c385958
2 changed files with 38 additions and 15 deletions
|
|
@ -7465,21 +7465,26 @@ class StandardLoggingPayloadSetup:
|
|||
return None
|
||||
user_agent_tags: list[str] | None = None
|
||||
headers: Final = proxy_server_request.get("headers", {})
|
||||
if headers is not None and isinstance(headers, dict):
|
||||
request_headers: Final = cast( # cast-ok: request headers are untyped framework data
|
||||
dict[str, str | None], headers
|
||||
)
|
||||
if "user-agent" in request_headers:
|
||||
user_agent: Final = request_headers["user-agent"]
|
||||
if user_agent is not None:
|
||||
if user_agent_tags is None:
|
||||
user_agent_tags = []
|
||||
user_agent_part: str | None = None
|
||||
if "/" in user_agent:
|
||||
user_agent_part = user_agent.split("/")[0]
|
||||
if user_agent_part is not None:
|
||||
user_agent_tags.append("User-Agent: " + user_agent_part)
|
||||
user_agent_tags.append("User-Agent: " + user_agent)
|
||||
if not isinstance(headers, dict):
|
||||
return None
|
||||
request_headers: Final = cast( # cast-ok: request headers are untyped framework data
|
||||
dict[str, str | None], headers
|
||||
)
|
||||
# Header names are case-insensitive: a client that sends "User-Agent"
|
||||
# or "USER-AGENT" must still be tagged (#40979).
|
||||
user_agent: Final = next(
|
||||
(v for k, v in request_headers.items() if k.lower() == "user-agent"),
|
||||
None,
|
||||
)
|
||||
if user_agent is not None:
|
||||
if user_agent_tags is None:
|
||||
user_agent_tags = []
|
||||
user_agent_part: str | None = None
|
||||
if "/" in user_agent:
|
||||
user_agent_part = user_agent.split("/")[0]
|
||||
if user_agent_part is not None:
|
||||
user_agent_tags.append("User-Agent: " + user_agent_part)
|
||||
user_agent_tags.append("User-Agent: " + user_agent)
|
||||
return user_agent_tags
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -3646,6 +3646,24 @@ def test_get_user_agent_tags():
|
|||
assert "User-Agent: litellm" in tags
|
||||
assert "User-Agent: litellm/0.1.0" in tags
|
||||
|
||||
# Header names are case-insensitive ("User-Agent" vs "user-agent").
|
||||
tags_capitalized = StandardLoggingPayloadSetup._get_user_agent_tags(
|
||||
proxy_server_request={
|
||||
"headers": {
|
||||
"User-Agent": "curl/7.68.0",
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
assert tags_capitalized is not None
|
||||
assert "User-Agent: curl" in tags_capitalized
|
||||
assert "User-Agent: curl/7.68.0" in tags_capitalized
|
||||
|
||||
# Non-dict headers must not raise; the function early-returns.
|
||||
assert StandardLoggingPayloadSetup._get_user_agent_tags(
|
||||
proxy_server_request={"headers": None}
|
||||
) is None
|
||||
|
||||
|
||||
def test_get_request_tags():
|
||||
from litellm.litellm_core_utils.litellm_logging import StandardLoggingPayloadSetup
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue