
    h
                     j    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e      Zy)	    )ListOptionalN)BaseLLMModelInfoget_secret_str)AllMessageValues)ProviderSpecificModelInfoc                       e Zd Zdedee   f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y)XAIModelInfomodelreturnc                 
    ddiS )zE
        Default values all models of this provider support.
        supports_web_searchT )selfr   s     Y/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/xai/common_utils.pyget_provider_infozXAIModelInfo.get_provider_info   s     "4
 	
    Nheadersmessagesoptional_paramslitellm_paramsapi_keyapi_basec                 4    |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   s           r   validate_environmentz!XAIModelInfo.validate_environment   s;     )0	':GO$ (^7-J&8GN#r   c                 (    | xs t        d      xs dS )NXAI_API_BASEzhttps://api.x.air   )r   s    r   get_api_basezXAIModelInfo.get_api_base+   s    O>.9O=OOr   c                      | xs t        d      S )NXAI_API_KEYr   )r   s    r   get_api_keyzXAIModelInfo.get_api_key/   s    7.77r   c                 &    | j                  dd      S )Nxai/ )replace)r   s    r   get_base_modelzXAIModelInfo.get_base_model3   s    }}VR((r   c                    | j                  |      }| j                  |      }||t        d      t        j                  j                  | ddd| i      }	 |j                          |j                         d   }g }|D ]  }|d	   }d
|z   }|j                  |        |S # t        j                  $ r& t        d|j                   d|j                         w xY w)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litellmmodule_level_clientgetraise_for_statushttpxHTTPStatusError	Exceptionstatus_codetextjsonappend)	r   r   r   responsemodelslitellm_model_namesr   stripped_model_namelitellm_model_names	            r   
get_modelszXAIModelInfo.get_models7   s    $$X.""7+w B  ..22*J'$y&9: 3 

	%%' ( E"'+!'*=!=&&'9:  #" $$ 	@AUAU@VVbckcpcpbqr 	s   B% %9C)NN)N)__name__
__module____qualname__strr   r	   r   dictr   r   r   staticmethodr!   r$   r)   r?   r   r   r   r   r      s6   	
	
 
+	,	
$ "&"&  '(	
   # 3- 
& Px} P P P 8Xc] 8hsm 8 8 )c )hsm ) ) HL#}#7?}#	c#r   r   )typingr   r   r3   r/    litellm.llms.base_llm.base_utilsr   litellm.secret_managers.mainr   litellm.types.llms.openair   litellm.types.utilsr	   r   r   r   r   <module>rK      s)    !   = 7 6 9G## G#r   