
    g>                         d dl mZmZmZmZmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ ddlmZ er	d dlmZ eZneZ G d	 d
e      Zy)    )TYPE_CHECKINGAnyListLiteralOptionalUnion)HeadersResponse)
BaseConfigBaseLLMException)AllMessageValues)ModelResponse   PredibaseError)Loggingc                   &    e Zd ZU dZdZee   ed<   dZee	d      ed<   dZ
ee   ed<   dZee   ed<   dZeed	<   d
Zeed<   dZee   ed<   dZee   ed<   dZee   ed<   dZeee      ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   dZee   ed<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 d1dee   dee   d	ee   dee   dee   dee   dee   deee      dee   dee   dee   dee   dee   dee   ddfdZe fd       ZdefdZde de dedede f
dZ!	 	 d2ded e"d!e#d"e$d#e d$ee%   de d%e d&ed'ee   d(ee   de#fd)Z&ded$ee%   de d%e d*e de fd+Z'd,ed-ed*e(e e)f   de*fd.Z+	 	 d2d*e ded$ee%   de d'ee   d/ee   de fd0Z, xZ-S )3PredibaseConfigzN
    Reference:  https://docs.predibase.com/user-guide/inference/rest_api
    N
adapter_id)pbasehubs3adapter_sourcebest_ofdecoder_input_detailsTdetails   max_new_tokensrepetition_penaltyFreturn_full_textseedstoptemperaturetop_ktop_ptruncate	typical_p	watermarkreturnc                     t               }|j                         D ]%  \  }}|dk7  s|t        | j                  ||       ' y )Nself)localsitemssetattr	__class__)r+   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   locals_keyvalues                     _/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py__init__zPredibaseConfig.__init__-   s;    " (!--/JCf}!2U3 *    c                      t         |          S )N)super
get_config)clsr/   s    r3   r8   zPredibaseConfig.get_configC   s    w!##r5   modelc                 
    g dS )N)streamr#   max_completion_tokens
max_tokensr%   r"   nresponse_format )r+   r:   s     r3   get_supported_openai_paramsz+PredibaseConfig.get_supported_openai_paramsG   s    	
 		
r5   non_default_paramsoptional_paramsdrop_paramsc                    |j                         D ]s  \  }}|dk(  r|dk(  s|dk(  rd}||d<   |dk(  r||d<   |dk(  r
||d<   d|d	<   |d
k(  r||d
<   |dk(  r||d<   |dk(  s|dk(  r|dk(  rd}||d<   |dk(  rd|d<   |dk(  so||d<   u |S )Nr#   g        r   g{Gz?r%   r?   r   T	do_sampler<   r"   r>   r=      r   echor   r@   )r-   )r+   rC   rD   r:   rE   paramr2   s          r3   map_openai_paramsz!PredibaseConfig.map_openai_paramsS   s     /446LE5%C<5A: !E16.+0(|-2	*  ,  ,1)*/'$1H(H A:E49 01 <@ 78))5: 12= 7> r5   raw_responsemodel_responselogging_objrequest_datamessageslitellm_paramsencodingapi_key	json_modec                     t        d      NzTPredibase transformation currently done in handler.py. Need to migrate to this file.NotImplementedError)r+   r:   rL   rM   rN   rO   rP   rD   rQ   rR   rS   rT   s               r3   transform_responsez"PredibaseConfig.transform_response{   s     "b
 	
r5   headersc                     t        d      rV   rW   )r+   r:   rP   rD   rQ   rZ   s         r3   transform_requestz!PredibaseConfig.transform_request   s     "b
 	
r5   error_messagestatus_codec                     t        |||      S )N)r^   messagerZ   r   )r+   r]   r^   rZ   s       r3   get_error_classzPredibaseConfig.get_error_class   s     #]G
 	
r5   api_basec                 x    |t        d      ddj                  |      d}|t        |t              ri ||}|S )NzMissing Predibase API Key - A call is being made to predibase but no key is set either in the environment variables or via paramszapplication/jsonz	Bearer {})zcontent-typeAuthorization)
ValueErrorformat
isinstancedict)r+   rZ   r:   rP   rD   rS   rb   default_headerss           r3   validate_environmentz$PredibaseConfig.validate_environment   s[     ? T 
 /(//8
 :gt#<44G4Gr5   )NNNNNNNNNNNNNN)NN).__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   intr   boolr   r   r   floatr    r!   r"   r   r#   r$   r%   r&   r'   r(   r4   classmethodr8   rB   rh   rK   r
   r   LiteLLMLoggingObjr   rY   r\   r   r	   r   ra   rj   __classcell__)r/   s   @r3   r   r      s    !%J$>BNHW%9:;B!GXc]!,08D>0GT C  +/. htn  D(3- $D(49
$#'K%'E8C=E8C="Hhsm"!%Ix% $Ix~$ "&04"&(,.2+/"$('+##"&%)$(4#4  (~4 $	4
 !4 %UO4 #4.4 sm4 tCy!4 e_4 }4 }4 3-4 E?4 D>4  
!4, $ $

 

& & & 	&
 & 
&f "&$(

 
 &	

 '
 
 '(
 
 
 
 #
 D>
 

$



 '(

 	


 

 

 



 
/2
=B4==Q
	
 "&"&  '(	
  # 3- 
r5   r   N)typingr   r   r   r   r   r   httpxr	   r
   )litellm.llms.base_llm.chat.transformationr   r   litellm.types.llms.openair   litellm.types.utilsr   common_utilsr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjru   r   rA   r5   r3   <module>r      s:    E E # R 6 - )X*aj ar5   