mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-09 08:18:12 +00:00
fix(proxy/logging): case-insensitive User-Agent header lookup in _get_user_agent_tags
Ensures User-Agent request tags are extracted regardless of header key casing. Closes #40979
This commit is contained in:
parent
c7c895db45
commit
60341e870b
2 changed files with 28 additions and 11 deletions
|
|
@ -7113,17 +7113,18 @@ class StandardLoggingPayloadSetup:
|
|||
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)
|
||||
user_agent: Final[str | None] = next(
|
||||
(v for k, v in request_headers.items() if k.lower() == "user-agent" and isinstance(v, str)),
|
||||
None,
|
||||
)
|
||||
if user_agent is not 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
|
||||
|
|
|
|||
|
|
@ -3412,6 +3412,22 @@ def test_get_user_agent_tags():
|
|||
assert "User-Agent: litellm/0.1.0" in tags
|
||||
|
||||
|
||||
def test_get_user_agent_tags_case_insensitive():
|
||||
from litellm.litellm_core_utils.litellm_logging import StandardLoggingPayloadSetup
|
||||
|
||||
tags = StandardLoggingPayloadSetup._get_user_agent_tags(
|
||||
proxy_server_request={
|
||||
"headers": {
|
||||
"User-Agent": "curl/7.68.0",
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
assert tags is not None
|
||||
assert "User-Agent: curl" in tags
|
||||
assert "User-Agent: curl/7.68.0" in tags
|
||||
|
||||
|
||||
def test_get_request_tags():
|
||||
from litellm.litellm_core_utils.litellm_logging import StandardLoggingPayloadSetup
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue