o
    ưi'                     @   sT   d dl mZmZmZ d dlmZ d dlmZmZ ddl	m
Z
 dZG dd de
Zd	S )
    )ListOptionalTuple)get_secret_str)AllMessageValuesChatCompletionToolParam   )OpenAIGPTConfigzhttps://api.z.ai/api/paas/v4c                   @   s   e Zd Zedee fddZdee dee deee ee f fddZ	dd	ed
e	e
 dee	e  dee	e
 ee	e  f fddZd	edefddZdS )ZAIChatConfigreturnc                 C   s   dS )NZzai )selfr   r   [/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/zai/chat/transformation.pycustom_llm_provider   s   z!ZAIChatConfig.custom_llm_providerapi_baseapi_keyc                 C   s$   |pt dpt}|pt d}||fS )NZAI_API_BASEZZAI_API_KEY)r   r   )r   r   r   Zdynamic_api_keyr   r   r   $_get_openai_compatible_provider_info   s   z2ZAIChatConfig._get_openai_compatible_provider_infoNmodelmessagestoolsc                 C   s   ||fS )zv
        Override to preserve cache_control for GLM/ZAI.
        GLM supports cache_control - don't strip it.
        r   )r   r   r   r   r   r   r   1remove_cache_control_flag_from_messages_and_tools   s   z?ZAIChatConfig.remove_cache_control_flag_from_messages_and_toolsc                 C   sL   g d}dd l }z|j|| jdr|d W |S W |S  ty%   Y |S w )N)Z
max_tokensstreamZstream_optionsZtemperatureZtop_pstopr   Ztool_choicer   )r   r   Zthinking)litellmZsupports_reasoningr   append	Exception)r   r   Zbase_paramsr   r   r   r   get_supported_openai_params$   s   z)ZAIChatConfig.get_supported_openai_params)N)__name__
__module____qualname__propertyr   strr   r   r   r   r   r   r   listr   r   r   r   r   r
      s*    


r
   N)typingr   r   r   Zlitellm.secret_managers.mainr   Zlitellm.types.llms.openair   r   Zopenai.chat.gpt_transformationr	   r   r
   r   r   r   r   <module>   s    