o
    ưi	                     @   sd   d Z ddlmZmZmZmZmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZ G dd deZd	S )
zW
Translates from OpenAI's `/v1/chat/completions` to DashScope's `/v1/chat/completions`
    )Any	CoroutineListLiteralOptionalTupleUnionoverloadget_secret_str)AllMessageValues   )OpenAIGPTConfigc                       s  e Zd Zedee deded dee	e	ee f fddZ
e	ddee deded dee fd	dZ
	ddee dededeee ee	e	ee f f f fd
dZ
dee dee deee ee f fddZ	ddee dee dedededee defddZ  ZS )DashScopeChatConfigmessagesmodelis_asyncTreturnc                 C      d S N selfr   r   r   r   r   a/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/dashscope/chat/transformation.py_transform_messages   s   z'DashScopeChatConfig._transform_messagesFc                 C   r   r   r   r   r   r   r   r      s   c                    s(   |rt  j||ddS t  j||ddS )NT)r   r   r   F)superr   r   	__class__r   r   r      s   api_baseapi_keyc                 C   s$   |pt dpd}|pt d}||fS )NZDASHSCOPE_API_BASE1https://dashscope.aliyuncs.com/compatible-mode/v1ZDASHSCOPE_API_KEYr
   )r   r   r   Zdynamic_api_keyr   r   r   $_get_openai_compatible_provider_info)   s   z8DashScopeChatConfig._get_openai_compatible_provider_infoNoptional_paramslitellm_paramsstreamc                 C   s    |sd}| ds| d}|S )zd
        If api_base is not provided, use the default DashScope /chat/completions endpoint.
        r    z/chat/completions)endswith)r   r   r   r   r"   r#   r$   r   r   r   get_complete_url4   s
   

z$DashScopeChatConfig.get_complete_url)Fr   )__name__
__module____qualname__r	   r   r   strr   r   r   r   boolr   r   r   r!   dictr&   __classcell__r   r   r   r   r      sn    	
r   N)__doc__typingr   r   r   r   r   r   r   r	   Zlitellm.secret_managers.mainr   Zlitellm.types.llms.openair   Zopenai.chat.gpt_transformationr   r   r   r   r   r   <module>   s    (