
    AHj6                     2    d dl mZ d dlmZ  G d de      Zy)    )Optional)OpenAIGPTConfigc                   (    e Zd ZU dZ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<   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dee   dee	   dee   dee   dee   dee   d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defdZde	de	dedede	f
dZdededefdZededefd       Zededefd       Z  xZ!S )BasetenConfigzS
    Reference: https://inference.baseten.co/v1

    Below are the parameters:
    N
max_tokensresponse_formatseedstreamtop_ptool_choicetoolsuserpresence_penaltyfrequency_penaltystream_optionsstoptemperature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   locals_keyvalues                    Q/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/llms/baseten/chat.py__init__zBasetenConfig.__init__   sF      (--/!--/ 	4JCf}!2U3	4    c                      t         |          S )N)super
get_config)clsr   s    r   r$   zBasetenConfig.get_config-   s    w!##r!   modelc                 
    g dS )zE
        Get the supported OpenAI params for the given model
        )r   max_completion_tokensr   r	   r   r
   r   r   r   r   r   r   r   r    )r   r&   s     r   get_supported_openai_paramsz)BasetenConfig.get_supported_openai_params1   s    
 	
r!   non_default_paramsoptional_paramsdrop_paramsc                     | j                  |      }|j                         D ]  \  }}|dk(  r||d<   ||v s|||<    |S )N)r&   r(   r   )r*   r   )r   r+   r,   r&   r-   supported_openai_paramsparamr   s           r   map_openai_paramszBasetenConfig.map_openai_paramsF   sb     #'"B"B"B"O.446 	/LE5//05-11).&		/
 r!   api_baseapi_keyc                     d}|xs d}||fS )zE
        Get the OpenAI compatible provider info for Baseten
        https://inference.baseten.co/v1BASETEN_API_KEYr)   )r   r2   r3   default_api_basedefault_api_keys        r   $_get_openai_compatible_provider_infoz2BasetenConfig._get_openai_compatible_provider_infoU   s      =!6%600r!   c                 d    | j                  dd      }ddl}t        |j                  d|            S )zZ
        Check if the model is a dedicated deployment (8-digit alphanumeric code)
        baseten/ r   Nz^[a-zA-Z0-9]{8}$)replacereboolmatch)r&   model_idr>   s      r   is_dedicated_deploymentz%BasetenConfig.is_dedicated_deploymenta   s0     ==R0 	BHH0(;<<r!   c                 ^    t         j                  |       r| j                  dd      }d| dS y)zF
        Get the appropriate API base URL for the given model
        r;   r<   zhttps://model-z/.api.baseten.co/environments/production/sync/v1r5   )r   rB   r=   )r&   rA   s     r   get_api_base_for_modelz$BasetenConfig.get_api_base_for_modeln   s7    
 007}}Z4H#H:-\]] 5r!   )NNNNNNNNNNNNN)"__name__
__module____qualname____doc__r   r   int__annotations__r   dictr	   r
   r?   r   r   strr   listr   r   r   r   floatr    classmethodr$   r*   r1   tupler9   staticmethodrB   rD   __classcell__)r   s   @r   r   r      sO    !%J$&*OXd^*D(3-!FHTN!E8C=!%K#% E8D> D(3-&*hsm*'+x}+%)NHTN) %)*."#!%'+#%) $"*.+/)-4SM4 "$4 sm	4
 tn4 4 e_4 }4 c]4 ~4 sm4 #3-4 $C=4 !4 
4* $ $
 
 
*   	
  

1
1&)
1	
1 
=s 
=t 
= 
= 
5c 
5c 
5 
5r!   r   N)typingr   +litellm.llms.openai.chat.gpt_transformationr   r   r)   r!   r   <module>rU      s     Gt5O t5r!   