
    ^h                         S SK JrJrJr  S SKrS SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJr   " S	 S
\5      rg)    )ListOptionalTupleN)verbose_logger"_audio_or_image_in_message_contentconvert_content_list_to_str)OpenAIConfig)get_secret_str)AllMessageValuesProviderFieldc                       \ rS rSrS\\   4S jrS\\   S\S\4S jr	S\S\
4S jrS\S\\   S	\\   S
\S\\\   \\   \4   4
S jrSrg)AzureAIStudioConfig   returnc                 2    [        SSSSS9[        SSSSS9/$ )	zDFor a given provider, return it's required fields with a descriptionapi_keystringzYour Azure AI Studio API Key.zzEJ...)
field_name
field_typefield_descriptionfield_valueapi_basezYour Azure AI Studio API Base.zhttps://Mistral-serverless.r   )selfs    c/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/azure_ai/chat/transformation.pyget_required_params'AzureAIStudioConfig.get_required_params   s8     $#"A$	 %#"B9	
 	
    messagesmodelc                 h    U H+  n[        U5      (       a  M  [        US9nU(       d  M'  XCS'   M-     U$ )z
- Azure AI Studio doesn't support content as a list. This handles:
    1. Transforms list content to a string.
    2. If message contains an image or audio, send as is (user-intended)
)messagecontentr   )r   r    r!   r#   textss        r   _transform_messages'AzureAIStudioConfig._transform_messages!   s<      G 2'::/@Eu%*	"   r   c                      SU;   a  UR                  SS5      S   nU[        R                  ;   d(  U[        R                  ;   d  U[        R                  ;   a  g g! [
         a     gf = f)N/   TF)splitlitellmopen_ai_chat_completion_modelsopen_ai_text_completion_modelsopen_ai_embedding_models	Exception)r   r!   s     r   _is_azure_openai_model*AzureAIStudioConfig._is_azure_openai_model6   sn    
	e|C+A.???GBBBG<<< =
   		s   AA 
A)(A)r   r   custom_llm_providerc                     U=(       d    [        S5      nU=(       d    [        S5      nU R                  US9(       a'  [        R                  " SR	                  U5      5        SnX%U4$ )NAZURE_AI_API_BASEAZURE_AI_API_KEY)r!   zDModel={} is Azure OpenAI model. Setting custom_llm_provider='azure'.azure)r   r1   r   debugformat)r   r!   r   r   r3   dynamic_api_keys         r   $_get_openai_compatible_provider_info8AzureAIStudioConfig._get_openai_compatible_provider_infoD   sh     B~.AB!G^4F%G&&U&3  V]]
 #**===r    N)__name__
__module____qualname____firstlineno__r   r   r   r   strr&   boolr1   r   r   r;   __static_attributes__r=   r   r   r   r      s    
T-%8 
"'(  
	*C D >> 3-> #	>
 !> 
x}hsmS0	1>r   r   )typingr   r   r   r,   litellm._loggingr   8litellm.litellm_core_utils.prompt_templates.common_utilsr   r	   litellm.llms.openai.openair
   litellm.secret_managers.mainr   litellm.types.llms.openair   litellm.types.utilsr   r   r=   r   r   <module>rL      s2    ( (  + 4 7 6 -F>, F>r   