o
    ưi                     @   s~   d dl mZ d dlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ dd	lmZ dd
lmZ G dd dZdS )    )Optional)get_litellm_gateway_api_key   )
ChatClient)CredentialsManagementClient)
HTTPClient)KeysManagementClient)ModelGroupsManagementClient)ModelsManagementClient)TeamsManagementClientc                   @   s0   e Zd ZdZ		d	dedee defddZdS )
Clientz7Main client for interacting with the LiteLLM proxy API.N   base_urlapi_keytimeoutc                 C   s   | d| _t p
|| _t|||d| _t| j| jd| _t| j| jd| _	t
| j| jd| _t| j| jd| _t| j| jd| _t| j| jd| _dS )aY  
        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)
        /)r   r   r   )r   r   N)rstripZ	_base_urlr   Z_api_keyr   httpr
   modelsr	   model_groupsr   chatr   keysr   credentialsr   teams)selfr   r   r    r   R/home/app/Keep/.python/lib/python3.10/site-packages/litellm/proxy/client/client.py__init__   s   zClient.__init__)Nr   )__name__
__module____qualname____doc__strr   intr   r   r   r   r   r      s    r   N)typingr   Z*litellm.litellm_core_utils.cli_token_utilsr   r   r   r   r   http_clientr   r   r   r   r	   r   r
   r   r   r   r   r   r   r   <module>   s    