o
    ưiU                     @   s>   d dl mZmZmZ d dlZG dd deZG dd dZdS )    )LiteralOptionalTupleNc                       s   e Zd Z fddZ  ZS )OpenAILikeErrorc                    s@   || _ || _tjddd| _tj|| jd| _t | j d S )NPOSTzhttps://www.litellm.ai)methodurl)status_coderequest)	r	   messagehttpxRequestr
   Responseresponsesuper__init__)selfr	   r   	__class__ \/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/openai_like/common_utils.pyr      s   zOpenAILikeError.__init__)__name__
__module____qualname__r   __classcell__r   r   r   r   r      s    r   c                   @   sR   e Zd Zdd Zdee dee ded dee dee d	e	eef fd
dZ
dS )OpenAILikeBasec                 K   s   d S )Nr   )r   kwargsr   r   r   r      s   zOpenAILikeBase.__init__api_keyapi_baseendpoint_type)chat_completions
embeddingsheaderscustom_endpointreturnc                 C   s   |d u r|d u rt ddd|d u rt ddd|d u r ddi}|d ur2d|vr2|dd|i |sJ|d	krAd
|}||fS |dkrJd|}||fS )Ni  zMissing API Key - A call is being made to LLM Provider but no key is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via params)r	   r   zMissing API Base - A call is being made to LLM Provider but no api base is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via paramszContent-Typezapplication/jsonAuthorizationz	Bearer {}r    z{}/chat/completionsr!   z{}/embeddings)r   updateformat)r   r   r   r   r"   r#   r   r   r   _validate_environment   s,   

z$OpenAILikeBase._validate_environmentN)r   r   r   r   r   strr   dictboolr   r(   r   r   r   r   r      s    
r   )typingr   r   r   r   	Exceptionr   r   r   r   r   r   <module>   s    