
    AHj
                     B    d Z ddlmZ ddlmZ ddlmZ  G d de      Zy)z[
Cerebras Chat Completions API

this is OpenAI compatible - no translation needed / occurs
    )Optional)OpenAIGPTConfig)supports_reasoningc                       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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 xZS )CerebrasConfigzu
    Reference: https://inference-docs.cerebras.ai/api-reference/chat-completions

    Below are the parameters:
    N
max_tokensresponse_formatseedstreamtop_ptool_choicetoolsuserreasoning_effort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   locals_keyvalues                  R/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/llms/cerebras/chat.py__init__zCerebrasConfig.__init__   sF     (--/!--/ 	4JCf}!2U3	4    c                      t         |          S )N)super
get_config)clsr   s    r   r#   zCerebrasConfig.get_config1   s    w!##r    modelc                 J    g d}t        |d      r|j                  d       |S )zF
        Get the supported OpenAI params for the given model

        )r   max_completion_tokensr	   r
   r   r   r   r   r   r   r   cerebras)r%   custom_llm_providerr   )r   append)r   r%   supported_paramss      r   get_supported_openai_paramsz*CerebrasConfig.get_supported_openai_params5   s+    
 EzJ##$67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 CerebrasConfig.map_openai_paramsO   sb     #'"B"B"B"O.446 	/LE5//05-11).&		/
 r    )NNNNNNNNNNN)__name__
__module____qualname____doc__r   r   int__annotations__r	   dictr
   r   boolr   r   strr   listr   r   floatr   classmethodr#   r,   r3   __classcell__)r   s   @r   r   r      s    !%J$&*OXd^*D(3-!FHTN!E8C=!%K#% E8D> D(3-&*hsm* %)*.""!%'+#%) $"*.4SM4 "$4 sm	4
 sm4 4 e_4 }4 c]4 ~4 sm4 #3-4 
4& $ $     4   	
  
r    r   N)r7   typingr   +litellm.llms.openai.chat.gpt_transformationr   litellm.utilsr   r    r    r   <module>rE      s#     G ,O_ Or    