Spaces:
Sleeping
Sleeping
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) | |