o
    ưi3                     @   s   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	 d	e	ZG d
d deZdS )    )ListOptionalUnionN)BaseLLMModelInfo)BaseLLMException)get_secret_str)AllMessageValues)_add_path_to_api_basec                       sT   e Zd Z			d	dededeej deej dee	ej
ef  f
 fddZ  ZS )
	VLLMErrorNstatus_codemessagerequestresponseheadersc                    s   t  j|||||d d S )N)r   r   r   r   r   )super__init__)selfr   r   r   r   r   	__class__ U/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/vllm/common_utils.pyr      s   
zVLLMError.__init__)NNN)__name__
__module____qualname__intstrr   httpxRequestResponser   Headersdictr   __classcell__r   r   r   r   r
      s    r
   c                   @   s   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
dZe	ddee d	ee fddZ
e	ddee d	ee fddZe	ded	ee fddZ	ddee dee d	ee fddZdededeeejf d	efddZdS )VLLMModelInfoNr   modelmessagesoptional_paramslitellm_paramsapi_keyapi_basereturnc                 C   s   |d ur||d< |S )Nz	x-api-keyr   )r   r   r#   r$   r%   r&   r'   r(   r   r   r   validate_environment    s   
z"VLLMModelInfo.validate_environmentc                 C   s    | pt d} | d u rtd| S )NZ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(   r   r   r   get_api_base.   s   zVLLMModelInfo.get_api_basec                 C   s   d S Nr   )r'   r   r   r   get_api_key7      zVLLMModelInfo.get_api_keyc                 C   s   | S r-   r   )r#   r   r   r   get_base_model;   r/   zVLLMModelInfo.get_base_modelc                 C   sj   t |}t |}d}|d u s|d u rtdt||}tjj|d}|  |	 d }dd |D S )Nz
/v1/modelszrVLLM_API_BASE or VLLM_API_KEY is not set. Please set the environment variable, to query VLLM's `/models` endpoint.)urldatac                 S   s   g | ]}|d  qS )idr   ).0r#   r   r   r   
<listcomp>S   s    z,VLLMModelInfo.get_models.<locals>.<listcomp>)
r"   r,   r.   r+   r	   litellmZmodule_level_clientgetraise_for_statusjson)r   r'   r(   Zendpointr1   r   modelsr   r   r   
get_models?   s   


zVLLMModelInfo.get_modelserror_messager   c                 C   s   t |||dS )N)r   r   r   )r
   )r   r<   r   r   r   r   r   get_error_classU   s   zVLLMModelInfo.get_error_class)NNr-   )r   r   r   r    r   r   r   r   r*   staticmethodr,   r.   r0   r;   r   r   r   r   r   r=   r   r   r   r   r"      sV    	

r"   )typingr   r   r   r   r6   Z litellm.llms.base_llm.base_utilsr   Z)litellm.llms.base_llm.chat.transformationr   Zlitellm.secret_managers.mainr   Zlitellm.types.llms.openair   Zlitellm.utilsr	   r
   r"   r   r   r   r   <module>   s    