o
    ưi
                     @   sd   d dl 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 G dd deZdS )	    )ListOptionalN)BaseLLMModelInfoget_secret_str)AllMessageValues)ProviderSpecificModelInfoc                   @   s   e Zd Zdedee fd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S )XAIModelInfomodelreturnc                 C   s   ddiS )zE
        Default values all models of this provider support.
        Zsupports_web_searchT )selfr
   r   r   T/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/xai/common_utils.pyget_provider_info   s   zXAIModelInfo.get_provider_infoNheadersmessagesoptional_paramslitellm_paramsapi_keyapi_basec                 C   s2   |d urd| |d< d|vrd|vrd|d< |S )NBearer Authorizationzcontent-typezContent-Typezapplication/jsonr   )r   r   r
   r   r   r   r   r   r   r   r   validate_environment   s
   
z!XAIModelInfo.validate_environmentc                 C   s   | pt dpdS )NZXAI_API_BASEzhttps://api.x.air   )r   r   r   r   get_api_base+   s   zXAIModelInfo.get_api_basec                 C   s   | pt dS )NZXAI_API_KEYr   )r   r   r   r   get_api_key/      zXAIModelInfo.get_api_keyc                 C   s   |  ddS )Nxai/ )replace)r
   r   r   r   get_base_model3   r   zXAIModelInfo.get_base_modelc           	      C   s   |  |}| |}|d u s|d u rtdtjj| ddd| id}z|  W n tjy@   t	d|j
 d|j w | d }g }|D ]}|d	 }d
| }|| qK|S )NzoXAI_API_BASE or XAI_API_KEY is not set. Please set the environment variable, to query XAI's `/models` endpoint.z
/v1/modelsr   r   )urlr   z.Failed to fetch models from XAI. Status code: z, Response: dataidr   )r   r   
ValueErrorlitellmZmodule_level_clientgetraise_for_statushttpxZHTTPStatusError	Exceptionstatus_codetextjsonappend)	r   r   r   responsemodelsZlitellm_model_namesr
   Zstripped_model_nameZlitellm_model_namer   r   r   
get_models7   s0   

zXAIModelInfo.get_models)NN)N)__name__
__module____qualname__strr   r   r   dictr   r   r   staticmethodr   r   r   r/   r   r   r   r   r	      sN    
	
r	   )typingr   r   r'   r$   Z litellm.llms.base_llm.base_utilsr   Zlitellm.secret_managers.mainr   Zlitellm.types.llms.openair   Zlitellm.types.utilsr   r	   r   r   r   r   <module>   s    