Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/client/client.py: 0%

19 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 12:01 +0000

1from litellm.litellm_core_utils.cli_token_utils import get_litellm_gateway_api_key 

2 

3from .chat import ChatClient 

4from .credentials import CredentialsManagementClient 

5from .http_client import HTTPClient 

6from .keys import KeysManagementClient 

7from .model_groups import ModelGroupsManagementClient 

8from .models import ModelsManagementClient 

9from .teams import TeamsManagementClient 

10 

11 

12class Client: 

13 """Main client for interacting with the LiteLLM proxy API.""" 

14 

15 def __init__( 

16 self, 

17 base_url: str, 

18 api_key: str | None = None, 

19 timeout: int = 30, 

20 ): 

21 """ 

22 Initialize the LiteLLM proxy client. 

23 

24 Args: 

25 base_url (str): The base URL of the LiteLLM proxy server (e.g., "http://localhost:4000") 

26 api_key (Optional[str]): API key for authentication. If provided, it will be sent as a Bearer token. 

27 timeout: Request timeout in seconds for management calls (default: 30). Chat completions keep 

28 ChatClient's own 600 second default, since a completion can legitimately take minutes 

29 """ 

30 self._base_url = base_url.rstrip("/") 

31 # Only use the stored CLI key when it was issued for this server. 

32 self._api_key = api_key or get_litellm_gateway_api_key(expected_base_url=self._base_url) 

33 

34 # Initialize resource clients 

35 

36 self.http = HTTPClient(base_url=base_url, api_key=self._api_key, timeout=timeout) 

37 self.models = ModelsManagementClient(base_url=self._base_url, api_key=self._api_key, timeout=timeout) 

38 self.model_groups = ModelGroupsManagementClient(base_url=self._base_url, api_key=self._api_key, timeout=timeout) 

39 self.chat = ChatClient(base_url=self._base_url, api_key=self._api_key) 

40 self.keys = KeysManagementClient(base_url=self._base_url, api_key=self._api_key, timeout=timeout) 

41 self.credentials = CredentialsManagementClient(base_url=self._base_url, api_key=self._api_key, timeout=timeout) 

42 self.teams = TeamsManagementClient(base_url=self._base_url, api_key=self._api_key, timeout=timeout)