
    h
                     :    d Z ddlmZmZ ddlmZ  G d de      Zy)z\
Sambanova Chat Completions API

this is OpenAI compatible - no translation needed / occurs
    )OptionalUnion)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ef      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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 xZS )SambanovaConfigzb
    Reference: https://docs.sambanova.ai/cloud/api-reference/

    Below are the parameters:
    N
max_tokenstemperaturetop_ptop_kstopstreamstream_optionstool_choiceresponse_formattools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   locals_keyvalues                 W/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/llms/sambanova/chat.py__init__zSambanovaConfig.__init__   sA     (--/!--/JCf}!2U3 *    c                      t         |          S )N)super
get_config)clsr   s    r   r"   zSambanovaConfig.get_config0   s    w!##r   modelc                     ddl m} g d} ||d      r3|j                  d       |j                  d       |j                  d       |S )	zF
        Get the supported OpenAI params for the given model

        r   )supports_function_calling)	max_completion_tokensr   r   r   r   r   r	   r
   r   	sambanova)custom_llm_providerr   r   parallel_tool_calls)litellm.utilsr&   append)r   r$   r&   paramss       r   get_supported_openai_paramsz+SambanovaConfig.get_supported_openai_params4   sD    
 	<

 %ULMM'"MM-(MM/0r   non_default_paramsoptional_paramsdrop_paramsc                     | j                  |      }|j                         D ]  \  }}|dk(  r||d<   ||v s|||<    |S )z?
        map max_completion_tokens param to max_tokens
        )r$   r'   r   )r.   r   )r   r/   r0   r$   r1   supported_openai_paramsparamr   s           r   map_openai_paramsz!SambanovaConfig.map_openai_paramsN   s]     #'"B"B"B"O.446LE5//05-11).&	 7
 r   )
NNNNNNNNNN)__name__
__module____qualname____doc__r   r   int__annotations__r	   r
   r   r   r   strlistr   boolr   dictr   r   r   floatr   classmethodr"   r.   r5   __classcell__)r   s   @r   r   r      s    !%J$!%K#%E8C=E8C='+D(5d#
$+!FHTN!%)NHTN)!%K#%&*OXd^* E8D>  %)*."!%)-'+!%#%) $4SM4 "$4 sm	4
 4 !4 e_4 4 }4 c]4 ~4 
4$ $ $  4   	
  
r   r   N)r9   typingr   r   +litellm.llms.openai.chat.gpt_transformationr   r    r   r   <module>rF      s     # GRo Rr   