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
« 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
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
12class Client:
13 """Main client for interacting with the LiteLLM proxy API."""
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.
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)
34 # Initialize resource clients
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)