o
    ưi                     @   s   d dl mZmZ d dlZddlmZ ddlT dee deeeeee	e
ef  f  deee  d	ee d
ef
ddZ							ddee dee dee dee dee dee d
ee fddZdS )    )OptionalUnionN   )UnsupportedParamsError)*rolecontentattachmentsmetadatacustom_llm_providerc                    s   t  }|d |d}| D ]\}}	|	||< qdddddfdd| D i }
 fdd} d	kr<}
n d
krTt  }||d t j|
d}
| D ]}| vrf|| |
|< qX|
S )z
    Azure doesn't support 'attachments' for creating a message

    Reference - https://learn.microsoft.com/en-us/azure/ai-services/openai/assistants-reference-messages?tabs=python#create-message
    r   kwargsN)r   r   r	   r
   c                    *   i | ]\}}| v r| | kr||qS  r   .0kvdefault_paramsr   O/home/app/Keep/.python/lib/python3.10/site-packages/litellm/assistants/utils.py
<dictcomp>.   
    z3get_optional_params_add_message.<locals>.<dictcomp>c                    sp   t  dkr6t }|D ]#}tjdu r"|| vr"|d  q|| vr3tjjdd| | dqS d S )Nr   T  zkk={}, not supported by {}. Supported params={}. To drop it from the call, set `litellm.drop_params = True`.status_codemessage)	lenkeyslistlitellmdrop_paramspoputilsr   formatsupported_paramsr   r   r   non_default_paramsr   r   _check_valid_arg6   s   z9get_optional_params_add_message.<locals>._check_valid_argopenaiazurer%   )r'   optional_params)localsr!   itemsr   ZAzureOpenAIAssistantsAPIConfigZ*get_supported_openai_create_message_paramsZ'map_openai_params_create_message_paramsr   )r   r   r	   r
   r   r   passed_paramsspecial_paramsr   r   r,   r(   r%   r   r   r   r'   r   get_optional_params_add_message	   s:   





r2   nqualityresponse_formatsizestyleuserc                    s.  t  }|d |d}	|	 D ]\}
}|||
< qd d d d d d dfdd| D i } fdd} dksD d	ksD tjv rG}n; d
krkdg}||d |d urj|d\}}t||d< t||d< n dkrdg}	 ||d | d urt| |d< | D ]}
|
 vr||
 ||
< q|S )Nr   r   )r3   r4   r5   r6   r7   r8   c                    r   r   r   r   r   r   r   r   q   r   z1get_optional_params_image_gen.<locals>.<dictcomp>c                    sj   t  dkr3t }|D ] }tjdu r"|| vr"|d  q|| vr0tdd  ddqS d S )Nr   Tr   z1Setting user/encoding format is not supported by z=. To drop it from the call, set `litellm.drop_params = True`.r   )r   r   r   r   r    r!   r   r$   r&   r   r   r(   y   s   
z7get_optional_params_image_gen.<locals>._check_valid_argr)   r*   Zbedrockr6   r+   xwidthheightZ	vertex_air3   ZsampleCount)r-   r!   r.   r   Zopenai_compatible_providerssplitintr   )r3   r4   r5   r6   r7   r8   r   r   r/   r0   r   r   r,   r(   r%   r:   r;   r   r1   r   get_optional_params_image_genW   sP   



	


r>   )NNNNNNN)typingr   r   r   
exceptionsr   Ztypes.llms.openaistrListZMessageContentTextObjectZMessageContentImageFileObjectZMessageContentImageURLObjectZ
Attachmentdictr2   r=   r>   r   r   r   r   <module>   sd    

O