mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-05 08:07:05 +00:00
refactor: update HTTP handlers to respect disable_default_user_agent
Modify http_handler.py and httpx_handler.py to check the disable_default_user_agent flag and return empty headers when disabled. This allows users to override the User-Agent header completely.
This commit is contained in:
parent
fe184936ff
commit
a14703eb17
2 changed files with 50 additions and 8 deletions
|
|
@ -50,9 +50,27 @@ try:
|
|||
except Exception:
|
||||
version = "0.0.0"
|
||||
|
||||
headers = {
|
||||
"User-Agent": f"litellm/{version}",
|
||||
}
|
||||
def get_default_headers() -> dict:
|
||||
"""
|
||||
Get default headers for HTTP requests.
|
||||
|
||||
Respects litellm.disable_default_user_agent flag to allow users to disable
|
||||
the automatic User-Agent header injection or override it completely.
|
||||
|
||||
Returns:
|
||||
dict: Default headers (may be empty if user disabled defaults)
|
||||
"""
|
||||
import litellm
|
||||
|
||||
if getattr(litellm, "disable_default_user_agent", False):
|
||||
return {}
|
||||
|
||||
return {
|
||||
"User-Agent": f"litellm/{version}",
|
||||
}
|
||||
|
||||
# Initialize headers - will be empty if disable_default_user_agent is True
|
||||
headers = get_default_headers()
|
||||
|
||||
# https://www.python-httpx.org/advanced/timeouts
|
||||
_DEFAULT_TIMEOUT = httpx.Timeout(timeout=5.0, connect=5.0)
|
||||
|
|
@ -371,13 +389,16 @@ class AsyncHTTPHandler:
|
|||
shared_session=shared_session,
|
||||
)
|
||||
|
||||
# Get default headers - will be empty if disable_default_user_agent is True
|
||||
default_headers = get_default_headers()
|
||||
|
||||
return httpx.AsyncClient(
|
||||
transport=transport,
|
||||
event_hooks=event_hooks,
|
||||
timeout=timeout,
|
||||
verify=ssl_config,
|
||||
cert=cert,
|
||||
headers=headers,
|
||||
headers=default_headers,
|
||||
follow_redirects=True,
|
||||
)
|
||||
|
||||
|
|
@ -899,6 +920,9 @@ class HTTPHandler:
|
|||
# /path/to/client.pem
|
||||
cert = os.getenv("SSL_CERTIFICATE", litellm.ssl_certificate)
|
||||
|
||||
# Get default headers - will be empty if disable_default_user_agent is True
|
||||
default_headers = get_default_headers() if not disable_default_headers else None
|
||||
|
||||
if client is None:
|
||||
transport = self._create_sync_transport()
|
||||
|
||||
|
|
@ -908,7 +932,7 @@ class HTTPHandler:
|
|||
timeout=timeout,
|
||||
verify=ssl_config,
|
||||
cert=cert,
|
||||
headers=headers if not disable_default_headers else None,
|
||||
headers=default_headers,
|
||||
follow_redirects=True,
|
||||
)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -7,9 +7,27 @@ try:
|
|||
except Exception:
|
||||
version = "0.0.0"
|
||||
|
||||
headers = {
|
||||
"User-Agent": f"litellm/{version}",
|
||||
}
|
||||
def get_default_headers() -> dict:
|
||||
"""
|
||||
Get default headers for HTTP requests.
|
||||
|
||||
Respects litellm.disable_default_user_agent flag to allow users to disable
|
||||
the automatic User-Agent header injection or override it completely.
|
||||
|
||||
Returns:
|
||||
dict: Default headers (may be empty if user disabled defaults)
|
||||
"""
|
||||
import litellm
|
||||
|
||||
if getattr(litellm, "disable_default_user_agent", False):
|
||||
return {}
|
||||
|
||||
return {
|
||||
"User-Agent": f"litellm/{version}",
|
||||
}
|
||||
|
||||
# Initialize headers - will be empty if disable_default_user_agent is True
|
||||
headers = get_default_headers()
|
||||
|
||||
|
||||
class HTTPHandler:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue