
    h                         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 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)DEFAULT_MAX_TOKENS)
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	<   e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<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 d0d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"	 	 d1d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,	 	 d1d)e!ded#ee&   de!d$e!d&ee   d.ee   de!fd/Z- xZ.S )2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                         }|j                         D ]%  \  }}|dk7  s|t        | j                  ||       ' y )Nself)localscopyitemssetattr	__class__)r+   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   locals_keyvalues                     f/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/predibase/chat/transformation.py__init__zPredibaseConfig.__init__.   sA    " (--/!--/JCf}!2U3 *    c                      t         |          S )N)super
get_config)clsr0   s    r4   r9   zPredibaseConfig.get_configD   s    w!##r6   modelc                 
    g dS )N)streamr#   max_completion_tokens
max_tokensr%   r"   nresponse_format )r+   r;   s     r4   get_supported_openai_paramsz+PredibaseConfig.get_supported_openai_paramsH   s    	
 		
r6   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   rA   )r.   )r+   rD   rE   r;   rF   paramr3   s          r4   map_openai_paramsz!PredibaseConfig.map_openai_paramsT   s     /446LE5%C<5A: !E16.+0(|-2	*     ,1)*/'$1H(H A:E49 01 <@ 78))5: 12= 7> r6   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;   rM   rN   rO   rP   rQ   rE   rR   rS   rT   rU   s               r4   transform_responsez"PredibaseConfig.transform_response|   s     "b
 	
r6   headersc                     t        d      rW   rX   )r+   r;   rQ   rE   rR   r[   s         r4   transform_requestz!PredibaseConfig.transform_request   s     "b
 	
r6   error_messagestatus_codec                     t        |||      S )N)r_   messager[   r   )r+   r^   r_   r[   s       r4   get_error_classzPredibaseConfig.get_error_class   s     #]G
 	
r6   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+   r[   r;   rQ   rE   rR   rT   rc   default_headerss	            r4   validate_environmentz$PredibaseConfig.validate_environment   s[     ? T 
 /(//8
 :gt#<44G4Gr6   )NNNNNNNNNNNNNN)NN)/__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   intr   boolr   r   r   r   floatr    r!   r"   r   r#   r$   r%   r&   r'   r(   r5   classmethodr9   rC   ri   rL   r
   r   LiteLLMLoggingObjr   rZ   r]   r   r	   r   rb   rk   __classcell__)r0   s   @r4   r   r      s    !%J$>BNHW%9:;B!GXc]!,08D>0GT C  +/. 	 h  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- 
r6   r   N)typingr   r   r   r   r   r   httpxr	   r
   litellm.constantsr   )litellm.llms.base_llm.chat.transformationr   r   litellm.types.llms.openair   litellm.types.utilsr   common_utilsr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjrv   r   rB   r6   r4   <module>r      s=    E E # 0 R 6 - )X*bj br6   