Spaces:
Paused
Paused
| from typing import Optional | |
| from .http_client import HTTPClient | |
| from .models import ModelsManagementClient | |
| from .model_groups import ModelGroupsManagementClient | |
| from .chat import ChatClient | |
| from .keys import KeysManagementClient | |
| from .credentials import CredentialsManagementClient | |
| class Client: | |
| """Main client for interacting with the LiteLLM proxy API.""" | |
| def __init__( | |
| self, | |
| base_url: str, | |
| api_key: Optional[str] = None, | |
| timeout: int = 30, | |
| ): | |
| """ | |
| Initialize the LiteLLM proxy client. | |
| Args: | |
| base_url (str): The base URL of the LiteLLM proxy server (e.g., "http://localhost:4000") | |
| api_key (Optional[str]): API key for authentication. If provided, it will be sent as a Bearer token. | |
| timeout: Request timeout in seconds (default: 30) | |
| """ | |
| self._base_url = base_url.rstrip("/") # Remove trailing slash if present | |
| self._api_key = api_key | |
| # Initialize resource clients | |
| self.http = HTTPClient(base_url=base_url, api_key=api_key, timeout=timeout) | |
| self.models = ModelsManagementClient(base_url=self._base_url, api_key=self._api_key) | |
| self.model_groups = ModelGroupsManagementClient(base_url=self._base_url, api_key=self._api_key) | |
| self.chat = ChatClient(base_url=self._base_url, api_key=self._api_key) | |
| self.keys = KeysManagementClient(base_url=self._base_url, api_key=self._api_key) | |
| self.credentials = CredentialsManagementClient(base_url=self._base_url, api_key=self._api_key) | |