o
    ưio
                     @   s   d dl mZmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ er6d dlmZ G d	d
 d
e	ZdS )    )TYPE_CHECKINGListOptionalTupleN)BaseAzureLLM)BasePassthroughConfigget_secret_str)AllMessageValues)GenericLiteLLMParams)URLc                       s$  e Zd ZdededefddZdee dee deded	ee d
ededef fddZ			ddedede
e ded
edee dee defddZe	ddee dee fddZe	ddee dee fddZededee fddZ	ddee dee de
e f fddZ  ZS )AzurePassthroughConfigendpointrequest_datareturnc                 C   s   d|v S )Nstream )selfr   r   r   r   d/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/azure/passthrough/transformation.pyis_streaming_request   s   z+AzurePassthroughConfig.is_streaming_requestapi_baseapi_keymodelrequest_query_paramslitellm_paramsr   c                 C   sp   |  |}|d u rtd|dpi }|d}	|	r%|	|v r%||	|}tj||||dd}
t|
|fS )NzAzure api base not foundlitellm_metadatamodel_groupapi_version)r   r   ZrouteZdefault_api_version)get_api_base	Exceptiongetreplacer   Z_get_base_azure_urlhttpxr   )r   r   r   r   r   r   r   Zbase_target_urlr   r   Zcomplete_urlr   r   r   get_complete_url   s    
	
z'AzurePassthroughConfig.get_complete_urlNheadersmessagesoptional_paramsc                 C   s$   t j|tdi i |d|idS )Nr   )r$   r   r   )r   Z _base_validate_azure_environmentr   )r   r$   r   r%   r&   r   r   r   r   r   r   validate_environment1   s   
z+AzurePassthroughConfig.validate_environmentc                 C      | pt dS )NZAZURE_API_BASEr   )r   r   r   r   r   B      z#AzurePassthroughConfig.get_api_basec                 C   r(   )NZAZURE_API_KEYr   )r   r   r   r   get_api_keyH   r)   z"AzurePassthroughConfig.get_api_keyc                 C   s   | S Nr   )r   r   r   r   get_base_modelN   s   z%AzurePassthroughConfig.get_base_modelc                    s   t  ||S r+   )super
get_models)r   r   r   	__class__r   r   r.   R   s   z!AzurePassthroughConfig.get_models)NNr+   )__name__
__module____qualname__strdictboolr   r   r   r#   r   r
   r'   staticmethodr   r*   r,   r.   __classcell__r   r   r/   r   r      sx    

%	
r   )typingr   r   r   r   r"   Zlitellm.llms.azure.common_utilsr   Z0litellm.llms.base_llm.passthrough.transformationr   Zlitellm.secret_managers.mainr	   Zlitellm.types.llms.openair
   Zlitellm.types.routerr   r   r   r   r   r   r   <module>   s    