
    h|	                         d dl mZmZmZ d dlZd dl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	e	      Z G d
 de      Zy)    )ListOptionalUnionN)BaseLLMModelInfo)BaseLLMException)get_secret_str)AllMessageValues)_add_path_to_api_basec                       e Zd Zy)	VLLMErrorN)__name__
__module____qualname__     Z/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/vllm/common_utils.pyr   r      s    r   r   c                      e Zd Z	 	 ddededee   dededee   dee   d	efd
Ze	ddee   d	ee   fd       Z
e	ddee   d	ee   fd       Ze	ded	ee   fd       Z	 ddee   dee   d	ee   fdZdededeeej"                  f   d	efdZy)VLLMModelInfoNheadersmodelmessagesoptional_paramslitellm_paramsapi_keyapi_basereturnc                     |S )z.Google AI Studio sends api key in query paramsr   )selfr   r   r   r   r   r   r   s           r   validate_environmentz"VLLMModelInfo.validate_environment   s	     r   c                 >    | xs t        d      } | t        d      | S )NVLLM_API_BASEzVLLM_API_BASE is not set. Please set the environment variable, to use VLLM's pass-through - `{LITELLM_API_BASE}/vllm/{endpoint}`.)r   
ValueError)r   s    r   get_api_basezVLLMModelInfo.get_api_base   s1    >~o> T  r   c                      y Nr   )r   s    r   get_api_keyzVLLMModelInfo.get_api_key(   s    r   c                     | S r%   r   )r   s    r   get_base_modelzVLLMModelInfo.get_base_model,   s    r   c                 F   t         j                  |      }t         j                  |      }d}||t        d      t	        ||      }t
        j                  j                  |      }|j                          |j                         d   }|D cg c]  }|d   	 c}S c c}w )Nz
/v1/modelszxGEMINI_API_BASE or GEMINI_API_KEY is not set. Please set the environment variable, to query Gemini's `/models` endpoint.)urldataid)
r   r#   r&   r"   r
   litellmmodule_level_clientgetraise_for_statusjson)r   r   r   endpointr*   responsemodelsr   s           r   
get_modelszVLLMModelInfo.get_models0   s     !--h7++G4w K  $Hh7..22 3 
 	!!#()/0d000s   Berror_messagestatus_codec                     t        |||      S )N)r7   messager   )r   )r   r6   r7   r   s       r   get_error_classzVLLMModelInfo.get_error_classF   s     #]G
 	
r   )NNr%   )r   r   r   dictstrr   r	   r   r   staticmethodr#   r&   r(   r5   intr   httpxHeadersr   r:   r   r   r   r   r      sH    "&"&  '(	
   # 3- 
 x}    Xc] hsm   c hsm   HL1}17?}1	c1,
 
/2
=B4CV=W
	
r   r   )typingr   r   r   r?   r-    litellm.llms.base_llm.base_utilsr   )litellm.llms.base_llm.chat.transformationr   litellm.secret_managers.mainr   litellm.types.llms.openair	   litellm.utilsr
   r   r   r   r   r   <module>rG      s:    ( (   = F 7 6 /	  	:
$ :
r   