
    g                         d dl mZmZ d dlZddlmZ ddl 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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Zy)    )OptionalUnionN   )UnsupportedParamsError)*rolecontentattachmentsmetadatacustom_llm_providerc                 @   t               }|j                  d      |j                  d      }|j                         D ]
  \  }}	|	||<    ddddd}
|j                         D 	ci c]  \  }}	||
v r|	|
|   k7  r||	 c}	}i }fd}dk(  r}nUdk(  rPt        j                         j                         } ||       t        j                         j                  |	      }|j                         D ]  }||
j                         vs||   ||<    |S c c}	}w )
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           	      @   t        j                               dkD  rt        j                               }|D ]a  }t        j                  du r|| vrj                  |d        ,|| vs1t        j                  j                  ddj                  ||              S y )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   kr   non_default_paramss      M/var/www/openai/venv/lib/python3.12/site-packages/litellm/assistants/utils.py_check_valid_argz9get_optional_params_add_message.<locals>._check_valid_arg6   s    !&&()A-*//12D''4/A=M4M&**1d3..!-->>$' !N  !U  !U24D! ?    &% .    openaiazurer   )r   optional_params)localsr   itemsr   AzureOpenAIAssistantsAPIConfig*get_supported_openai_create_message_params'map_openai_params_create_message_paramsr   )r   r	   r
   r   r   r   passed_paramsspecial_paramsr   vdefault_paramsr&   r!   r   r   s       `         @r    get_optional_params_add_messager0   	   sX   0 HM'++,AB"&&x0N$$&1a ' 	N "''))DAqA):$: 	
1)
 O&" h&,		'224__a 	 	*:;!@@Bjj1? k 
 !N''))!.q!1OA " Ms   &Dnqualityresponse_formatsizestyleuserc                    t               }|j                  d      |j                  d      }	|	j                         D ]
  \  }
}|||
<    d d d d d d d}|j                         D 
ci c]  \  }
}|
|v r|||
   k7  r|
| c}}
i }fd}dk(  sdk(  st        j                  v r}nfdk(  r?dg} ||	       |S|j                  d
      \  }}t        |      |d<   t        |      |d<   n"dk(  rdg}	  ||	       | t        |       |d<   |j                         D ]  }
|
|j                         vs||
   ||
<    |S c c}}
w )Nr   r   )r1   r2   r3   r4   r5   r6   c                     t        j                               dkD  r`t        j                               }|D ]@  }t        j                  du r|| vrj                  |d        ,|| vs1t        dd d       S y )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   s      r    r!   z7get_optional_params_image_gen.<locals>._check_valid_argy   s    !&&()A-*//12D''4/A=M4M&**1d3..0$'"STgSh  if  !g   &% .r"   r#   r$   bedrockr4   r%   xwidthheight	vertex_air1   sampleCount)r'   r   r(   r   openai_compatible_providerssplitintr   )r1   r2   r3   r4   r5   r6   r   r   r,   r-   r   r.   r/   r&   r!   r   r;   r<   r   s         `           @r    get_optional_params_image_genrB   W   s    HM'++,AB"&&x0N$$&1a ' N "''))DAqA):$: 	
1)
 O&  	x'')'"E"EE,			)"8*:; JJsOME6'*5zOG$(+FOH%		+5	 	*:;=-0VOM*!N''))!.q!1OA " as   (E)NNNNNNN)typingr   r   r   
exceptionsr   types.llms.openaistrListMessageContentTextObjectMessageContentImageFileObjectMessageContentImageURLObject
Attachmentdictr0   rA   rB    r"   r    <module>rN      s   "  / !K
3-K,102		
K $z*+K tnK  !K^ !%))-J}Jc]J c]J 3-	J
 C=J 3-J "#Jr"   