o
    Æ°i
  ã                   @   s0   d dl mZmZ d dlmZ G dd„ deƒZdS )é    )ÚOptionalÚUnion)ÚOpenAILikeChatConfigc                       s°  e Zd ZU dZ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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dee dee	e
ef  dee dee dee dee d	ee d
ee	e
ef  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dedede
dededef‡ fdd„Z‡  ZS )ÚVolcEngineChatConfigzB
    Reference: https://www.volcengine.com/docs/82379/1494384
    NÚfrequency_penaltyÚfunction_callÚ	functionsÚ
logit_biasÚ
max_tokensÚnÚpresence_penaltyÚstopÚtemperatureÚtop_pÚresponse_formatÚ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   úb/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/volcengine/chat/transformation.pyÚ__init__   s   
€þzVolcEngineChatConfig.__init__c                    s
   t ƒ  ¡ S )N)ÚsuperÚ
get_config)Úcls©r   r   r   r   )   s   
zVolcEngineChatConfig.get_configÚmodelc                 C   s   g d¢S )N)r   r	   ZlogprobsZtop_logprobsZmax_completion_tokensr
   r   r   Úseedr   ÚstreamZstream_optionsr   r   ZtoolsZtool_choicer   r   Úmax_retriesÚextra_headersÚthinkingr   )r   r!   r   r   r   Úget_supported_openai_params-   s   z0VolcEngineChatConfig.get_supported_openai_paramsTÚnon_default_paramsÚoptional_paramsÚdrop_paramsÚ-replace_max_completion_tokens_with_max_tokensc                    sd   t ƒ  |||||¡}d|v r0	 | d¡}|d ur/t|tƒr/| dd ¡dv r/|| di ¡d< |S 	 |S )Nr&   Útype)ÚenabledÚdisabledÚautoZ
extra_body)r   Úmap_openai_paramsÚpopÚ
isinstanceÚdictÚgetÚ
setdefault)r   r(   r)   r!   r*   r+   Zthinking_valuer    r   r   r0   F   s$   û
ÿÿz&VolcEngineChatConfig.map_openai_params)NNNNNNNNNNN)T)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚintÚ__annotations__r   r   Ústrr3   r   Úlistr	   r
   r   r   r   r   r   r   r   Úclassmethodr   r'   Úboolr0   Ú__classcell__r   r   r    r   r      s„   
 ôþýüûúùø	÷
öõô
óúþýüûúùr   N)Útypingr   r   Z,litellm.llms.openai_like.chat.transformationr   r   r   r   r   r   Ú<module>   s    