o
    ưi
                     @   s<   d Z ddlmZ ddlmZ ddlmZ G dd deZdS )z[
Cerebras Chat Completions API

this is OpenAI compatible - no translation needed / occurs
    )Optional)OpenAIGPTConfig)supports_reasoningc                       sd  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dZe fddZdedefddZde	de	dedede	f
ddZ  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                 C   s>   t   }| D ]\}}|dkr|d urt| j|| q	d S )Nself)localscopyitemssetattr	__class__)r   r   r   r   r   r	   r   r
   r   r   r   r   Zlocals_keyvalue r   Q/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/cerebras/chat.py__init__   s   
zCerebrasConfig.__init__c                    s
   t   S )N)super
get_config)clsr   r   r   r   1   s   
zCerebrasConfig.get_configmodelc                 C   s"   g d}t |ddr|d |S )zF
        Get the supported OpenAI params for the given model

        )r   max_completion_tokensr   r   r   r	   r   r
   r   r   r   Zcerebras)r!   Zcustom_llm_providerr   )r   append)r   r!   Zsupported_paramsr   r   r   get_supported_openai_params5   s   
z*CerebrasConfig.get_supported_openai_paramsnon_default_paramsoptional_paramsdrop_paramsc                 C   sD   | j |d}| D ]\}}|dkr||d< q
||v r|||< q
|S )N)r!   r"   r   )r$   r   )r   r%   r&   r!   r'   Zsupported_openai_paramsparamr   r   r   r   map_openai_paramsO   s   
z CerebrasConfig.map_openai_params)NNNNNNNNNNN)__name__
__module____qualname____doc__r   r   int__annotations__r   dictr   r	   boolr
   r   strr   listr   r   floatr   classmethodr   r$   r)   __classcell__r   r   r    r   r      sz   
 	

r   N)r-   typingr   Z+litellm.llms.openai.chat.gpt_transformationr   Zlitellm.utilsr   r   r   r   r   r   <module>   s
    