Ë
    uPêj  ã                   ó¦   — d dl 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 d dlmZ d d	lmZ erd d
lmZ d dlmZ  G d„ de«      Zy)é    )ÚTYPE_CHECKINGÚFinalÚOptionalN)ÚResponse)ÚLogging)ÚBaseAzureLLM)ÚBasePassthroughConfig©Úget_secret_str)ÚAllMessageValues)ÚGenericLiteLLMParams)ÚURL)ÚCostResponseTypesc                   ór  ‡ — e Zd Zdededefd„Zdedz  dedz  deded	edz  d
ededef   fd„Z	 	 ddedede	e
   ded
ededz  dedz  defd„Ze	 ddedz  dedz  fd„«       Ze	 ddedz  dedz  fd„«       Zedededz  fd„«       Zddedz  dedz  de	e   fˆ fd„Zdededededededed   fd„Zˆ xZS )ÚAzurePassthroughConfigÚendpointÚrequest_dataÚreturnc                 ó
   — d|v S )NÚstream© )Úselfr   r   s      úr/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/azure/passthrough/transformation.pyÚis_streaming_requestz+AzurePassthroughConfig.is_streaming_request   s   € Ø˜<Ð'Ð'ó    Úapi_baseNÚapi_keyÚmodelÚrequest_query_paramsÚlitellm_paramsr   c                 ó8  — | j                  |«      }|€t        d«      ‚|j                  d«      xs i }|j                  d«      }	|	r|	|v r|j                  |	|«      }t	        j
                  ||||j                  d«      ¬«      }
t        j                  |
«      |fS )NzAzure api base not foundÚlitellm_metadataÚmodel_groupÚapi_version)r   r    ÚrouteÚdefault_api_version)Úget_api_baseÚ	ExceptionÚgetÚreplacer   Ú_get_base_azure_urlÚhttpxr   )r   r   r   r   r   r   r    Úbase_target_urlr"   r#   Úcomplete_urls              r   Úget_complete_urlz'AzurePassthroughConfig.get_complete_url   s«   € ð "&×!2Ñ!2°8Ó!<ˆàÐ"ÜÐ6Ó7Ð7à"0×"4Ñ"4Ð5GÓ"HÒ"NÈBÐØ-×1Ñ1°-Ó@ˆÙ˜;¨(Ñ2Ø×'Ñ'¨°UÓ;ˆHä*×>Ñ>Ø$Ø)ØØ .× 2Ñ 2°=Ó Aô	
ˆô �I‰I�lÓ#Øð
ð 	
r   ÚheadersÚmessagesÚoptional_paramsc           
      óN   — t        j                  |t        di i |¥d|i¥¤Ž¬«      S )Nr   )r0   r    r   )r   Ú _base_validate_azure_environmentr   )r   r0   r   r1   r2   r    r   r   s           r   Úvalidate_environmentz+AzurePassthroughConfig.validate_environment5   s3   € ô ×<Ñ<ØÜ/ÑYÐ2X°^Ð2XÀYÐPWÑ2XÑYô
ð 	
r   c                 ó    — | xs t        d«      S )NÚAZURE_API_BASEr
   )r   s    r   r'   z#AzurePassthroughConfig.get_api_baseD   s   € ð Ò;œ>Ð*:Ó;Ð;r   c                 ó    — | xs t        d«      S )NÚAZURE_API_KEYr
   )r   s    r   Úget_api_keyz"AzurePassthroughConfig.get_api_keyJ   s   € ð Ò9œ.¨Ó9Ð9r   c                 ó   — | S ©Nr   )r   s    r   Úget_base_modelz%AzurePassthroughConfig.get_base_modelP   s   € àˆr   c                 ó$   •— t         ‰| �  ||«      S r<   )ÚsuperÚ
get_models)r   r   r   Ú	__class__s      €r   r@   z!AzurePassthroughConfig.get_modelsT   s   ø€ Ü‰wÑ! '¨8Ó4Ð4r   Úcustom_llm_providerÚhttpx_responseÚlogging_objr   c                 óŠ   — ddl m} ddlm} ddlm}	 d|vry  |«       }
|
j                  |dddœg| |	«       |i i d	||¬
«
      }|S )Nr   )Úencoding)ÚOpenAIGPTConfig)ÚModelResponsezchat/completionsÚuserz no-message-pass-through-endpoint)ÚroleÚcontentÚ )
r   r1   Úraw_responseÚmodel_responserD   r2   r    r   r   rF   )ÚlitellmrF   Ú+litellm.llms.openai.chat.gpt_transformationrG   Úlitellm.types.utilsrH   Útransform_response)r   r   rB   rC   r   rD   r   rF   rG   rH   Úopenai_chat_configÚlitellm_model_responses               r   Úlogging_non_streaming_responsez5AzurePassthroughConfig.logging_non_streaming_responseW   si   € õ 	%ÝOÝ5à XÑ-Øá$3Ó$5Ðà7I×7\Ñ7\ØØ%Ð2TÑUÐVØ'Ù(›?Ø#ØØØØ%Øð 8]ó 8
Ðð &Ð%r   )NNr<   )Ú__name__Ú
__module__Ú__qualname__ÚstrÚdictÚboolr   Útupler/   Úlistr   r5   Ústaticmethodr'   r:   r=   r@   r   r   r   rU   Ú__classcell__)rA   s   @r   r   r      sá  ø„ ð(¨Sð (Àð (Èó (ð
à˜‘*ð
ð �t‘ð
ð ð	
ð
 ð
ð # T™kð
ð ð
ð 
ˆu�cˆzÑ	ó
ðJ #Ø#ñ
àð
ð ð
ð Ð'Ñ(ð	
ð
 ð
ð ð
ð �t‘ð
ð ˜‘*ð
ð 
ó
ð à#ñ<Ø˜‘*ð<à	ˆt‰ò<ó ð<ð
 à"ñ:Ø�t‘ð:à	ˆt‰ò:ó ð:ð
 ð˜cð  c¨D¡jò ó ðñ5 #¨¡*ð 5¸sÀT¹zð 5ÐUYÐZ]ÑU^õ 5ð&àð&ð !ð&ð !ð	&ð
 ð&ð ð&ð ð&ð 
Ð%Ñ	&÷&r   r   )Útypingr   r   r   r,   r   Ú*litellm.litellm_core_utils.litellm_loggingr   Úlitellm.llms.azure.common_utilsr   Ú0litellm.llms.base_llm.passthrough.transformationr	   Úlitellm.secret_managers.mainr   Úlitellm.types.llms.openair   Úlitellm.types.routerr   r   rQ   r   r   r   r   r   ú<module>rg      s;   ðß 1Ñ 1ã Ý å >Ý 8Ý RÝ 7Ý 6Ý 5áÝå5ôc&Ð2õ c&r   