forked from phoenix/litellm-mirror
fix(router.py): fix setting httpx mounts
This commit is contained in:
parent
151d19960e
commit
98daedaf60
4 changed files with 93 additions and 26 deletions
|
@ -42,6 +42,8 @@ import httpx
|
|||
import openai
|
||||
import requests
|
||||
import tiktoken
|
||||
from httpx import Proxy
|
||||
from httpx._utils import get_environment_proxies
|
||||
from pydantic import BaseModel
|
||||
from tokenizers import Tokenizer
|
||||
|
||||
|
@ -4803,6 +4805,34 @@ def get_provider_fields(custom_llm_provider: str) -> List[ProviderField]:
|
|||
return []
|
||||
|
||||
|
||||
def create_proxy_transport_and_mounts():
|
||||
proxies = {
|
||||
key: None if url is None else Proxy(url=url)
|
||||
for key, url in get_environment_proxies().items()
|
||||
}
|
||||
|
||||
sync_proxy_mounts = {}
|
||||
async_proxy_mounts = {}
|
||||
|
||||
# Retrieve NO_PROXY environment variable
|
||||
no_proxy = os.getenv("NO_PROXY", None)
|
||||
no_proxy_urls = no_proxy.split(",") if no_proxy else []
|
||||
|
||||
for key, proxy in proxies.items():
|
||||
if proxy is None:
|
||||
sync_proxy_mounts[key] = httpx.HTTPTransport()
|
||||
async_proxy_mounts[key] = httpx.AsyncHTTPTransport()
|
||||
else:
|
||||
sync_proxy_mounts[key] = httpx.HTTPTransport(proxy=proxy)
|
||||
async_proxy_mounts[key] = httpx.AsyncHTTPTransport(proxy=proxy)
|
||||
|
||||
for url in no_proxy_urls:
|
||||
sync_proxy_mounts[url] = httpx.HTTPTransport()
|
||||
async_proxy_mounts[url] = httpx.AsyncHTTPTransport()
|
||||
|
||||
return sync_proxy_mounts, async_proxy_mounts
|
||||
|
||||
|
||||
def validate_environment(model: Optional[str] = None) -> dict:
|
||||
"""
|
||||
Checks if the environment variables are valid for the given model.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue