diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py')
| -rw-r--r-- | .venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py new file mode 100644 index 00000000..6f684ba0 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/litellm/llms/custom_httpx/httpx_handler.py @@ -0,0 +1,49 @@ +from typing import Optional, Union + +import httpx + +try: + from litellm._version import version +except Exception: + version = "0.0.0" + +headers = { + "User-Agent": f"litellm/{version}", +} + + +class HTTPHandler: + def __init__(self, concurrent_limit=1000): + # Create a client with a connection pool + self.client = httpx.AsyncClient( + limits=httpx.Limits( + max_connections=concurrent_limit, + max_keepalive_connections=concurrent_limit, + ), + headers=headers, + ) + + async def close(self): + # Close the client when you're done with it + await self.client.aclose() + + async def get( + self, url: str, params: Optional[dict] = None, headers: Optional[dict] = None + ): + response = await self.client.get(url, params=params, headers=headers) + return response + + async def post( + self, + url: str, + data: Optional[Union[dict, str]] = None, + params: Optional[dict] = None, + headers: Optional[dict] = None, + ): + try: + response = await self.client.post( + url, data=data, params=params, headers=headers # type: ignore + ) + return response + except Exception as e: + raise e |
