
    gU                     J    d dl mZmZmZ d dlZ G d de      Z G d d      Zy)    )LiteralOptionalTupleNc                        e Zd Z fdZ xZS )OpenAILikeErrorc                     || _         || _        t        j                  dd      | _        t        j
                  || j                        | _        t        | !  | j                         y )NPOSTzhttps://www.litellm.ai)methodurl)status_coderequest)	r   messagehttpxRequestr   Responseresponsesuper__init__)selfr   r   	__class__s      Z/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/openai_like/common_utils.pyr   zOpenAILikeError.__init__   sO    &}}F8PQ;ULL	
    )__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s    
 
r   r   c                   Z    e Zd Zd Zdee   dee   ded   dee   dee   de	eef   fd	Z
y
)OpenAILikeBasec                      y )N )r   kwargss     r   r   zOpenAILikeBase.__init__   s    r   api_keyapi_baseendpoint_type)chat_completions
embeddingsheaderscustom_endpointreturnc                 
   ||t        dd      |t        dd      |ddi}|&d|vr"|j                  ddj                  |      i       |s0|d	k(  rd
j                  |      }||fS |dk(  rdj                  |      }||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(   s         r   _validate_environmentz$OpenAILikeBase._validate_environment   s     ?w! n 
 ! t 
 ? 2G
 O7$BNNO[-?-?-HIJ 22077A    ,.*11(;  r   N)r   r   r   r   r   strr   dictboolr   r.   r    r   r   r   r      se    #!##! 3-#! ?@	#!
 $#! "$#! 
sDy	#!r   r   )typingr   r   r   r   	Exceptionr   r   r    r   r   <module>r4      s$    + + 
i 
'! '!r   