Ë
    uPêjj
  ã                   ój   — d Z ddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
mZmZ ddlmZ  G d„ d	e«      Zy
)zW
Translates from OpenAI's `/v1/chat/completions` to DashScope's `/v1/chat/completions`
é    )Ú	Coroutine)ÚAnyÚFinalÚLiteralÚoverload©Úget_secret_str)ÚAllMessageValuesÚChatCompletionToolParamé   )ÚOpenAIGPTConfigc                   óŠ  ‡ — e Zd Z	 ddedee   dee   dz  deee   ee   dz  f   fd„Ze	dee   dede
d   deeeee   f   fd	„«       Ze		 ddee   dede
d
   dee   fd„«       Z	 ddee   dededee   eeeee   f   z  fˆ fd„Zdedz  dedz  deedz  edz  f   fd„Z	 ddedz  dedz  dededededz  defd„Zˆ xZS )ÚDashScopeChatConfigNÚmodelÚmessagesÚtoolsÚreturnc                 ó
   — ||fS )z~
        Override to preserve cache_control for DashScope.
        DashScope supports cache_control - don't strip it.
        © )Úselfr   r   r   s       úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/dashscope/chat/transformation.pyÚ1remove_cache_control_flag_from_messages_and_toolszEDashScopeChatConfig.remove_cache_control_flag_from_messages_and_tools   s   € ð ˜ˆÐó    Úis_asyncTc                  ó   — y ©Nr   ©r   r   r   r   s       r   Ú_transform_messagesz'DashScopeChatConfig._transform_messages   s   € ð 7:r   Fc                  ó   — y r   r   r   s       r   r   z'DashScopeChatConfig._transform_messages    s   € ð "%r   c                 óP   •— |rt         ‰| �  ||d¬«      S t         ‰| �  ||d¬«      S )NT)r   r   r   F)Úsuperr   )r   r   r   r   Ú	__class__s       €r   r   z'DashScopeChatConfig._transform_messages(   s8   ø€ ñ Ü‘7Ñ.¸ÈÐX\Ð.Ó]Ð]ä‘7Ñ.¸ÈÐX]Ð.Ó^Ð^r   Úapi_baseÚapi_keyc                 óN   — |xs t        d«      xs d}|xs t        d«      }||fS )NÚDASHSCOPE_API_BASEú1https://dashscope.aliyuncs.com/compatible-mode/v1ÚDASHSCOPE_API_KEYr   )r   r#   r$   Údynamic_api_keys       r   Ú$_get_openai_compatible_provider_infoz8DashScopeChatConfig._get_openai_compatible_provider_info0   s:   € ð ÒsœÐ';Ó<ÒsÐ@sð 	ð ")Ò!O¬NÐ;NÓ,OˆØ˜Ð(Ð(r   Úoptional_paramsÚlitellm_paramsÚstreamc                 ó:   — |sd}|j                  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-   s          r   Úget_complete_urlz$DashScopeChatConfig.get_complete_url9   s-   € ñ ØJˆHà× Ñ Ð!4Ô5Ø"˜Ð#4Ð5ˆHàˆr   r   )F)Ú__name__Ú
__module__Ú__qualname__ÚstrÚlistr
   r   Útupler   r   r   r   r   r   Úboolr*   Údictr0   Ú__classcell__)r"   s   @r   r   r      sã  ø„ ð
 7;ñ	
àð
ð Ð'Ñ(ð
ð Ð+Ñ,¨tÑ3ð	
ð
 
ˆtÐ$Ñ% tÐ,CÑ'DÀtÑ'KÐKÑ	Ló
ð ð:ØÐ-Ñ.ð:Ø7:ð:ØFMÈdÁmð:à	�3˜˜TÐ"2Ñ3Ð3Ñ	4ò:ó ð:ð ð
 $)ñ	%àÐ'Ñ(ð%ð ð%ð ˜%‘.ð	%ð
 
ÐÑ	ò%ó ð%ð NSñ_ØÐ-Ñ.ð_Ø7:ð_ØFJð_à	ÐÑ	 )¨C°°dÐ;KÑ6LÐ,LÑ"MÑ	Mõ_ð)Ø˜d™
ð)Ø-0°4©Zð)à	ˆs�T‰z˜3 ™:Ð%Ñ	&ó)ð  #ñà˜‘*ðð �t‘ðð ð	ð
 ðð ðð �t‘ðð 
÷r   r   N)Ú__doc__Úcollections.abcr   Útypingr   r   r   r   Úlitellm.secret_managers.mainr	   Úlitellm.types.llms.openair
   r   Úopenai.chat.gpt_transformationr   r   r   r   r   ú<module>r@      s*   ðñõ &ß 0Ó 0å 7ß Oå =ô=˜/õ =r   