Ë
    uPêj5d  ã                   ó  — U d dl Z d dlmZ d dlmZ d dlmZmZ d dl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mZ d dlmZ d dlmZmZmZmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z%  e%«       Z&ee'd<   	  G d„ de«      Z(y)é    N)ÚCallable)Údeepcopy)ÚFinalÚcast)Úverbose_logger)Úasyncify)Úget_aws_dns_suffix)ÚLogging)Ú
BaseAWSLLM)Ú_get_httpx_clientÚget_async_httpx_client)ÚAllMessageValues)ÚCustomStreamWrapperÚEmbeddingResponseÚModelResponseÚ
get_secreté   )ÚAWSEventStreamDecoderÚSagemakerError)ÚSagemakerEmbeddingConfigé   )ÚSagemakerConfigÚsagemaker_configc                   ó†  — e Zd Zdefd„Z	 ddededee   dededed	edz  fd
„Zdi dddi fdedede	de
dedededeej                  z  dz  dedefd„Z	 ddededefd„Z	 ddededefd„Zdee   dedededz  dede	dedz  dededefd„Zdee   dedededz  dede	dedededz  dedefd„Zi ddfdededede
def
d„Zy)ÚSagemakerLLMÚoptional_paramsc                 ó–  — 	 ddl m} |j                  dd «      }|j                  dd «      }|j                  dd «      }|j                  dd «      }|j                  dd «      }|j                  d	d «      }|j                  d
d «      }	|j                  dd «       |j                  dd «      }
|j                  dd «      }|j                  dd «      }|€Dt	        dd «      }|�t        |t        «      r|}t	        dd «      }|�t        |t        «      r|}|€d}| j                  ||||||	||
||¬«
      }||fS # t        $ r t        d«      ‚w xY w)Nr   )ÚCredentialsú7Missing boto3 to call bedrock. Run 'pip install boto3'.Úaws_secret_access_keyÚaws_access_key_idÚaws_session_tokenÚaws_region_nameÚaws_role_nameÚaws_session_nameÚaws_profile_nameÚaws_bedrock_runtime_endpointÚaws_web_identity_tokenÚaws_sts_endpointÚaws_external_idÚAWS_REGION_NAMEÚ
AWS_REGIONz	us-west-2)
r!   r    r"   r#   r%   r&   r$   r(   r)   r*   )Úbotocore.credentialsr   ÚImportErrorÚpopr   Ú
isinstanceÚstrÚget_credentials)Úselfr   r   r    r!   r"   r#   r$   r%   r&   r(   r)   r*   Úlitellm_aws_region_nameÚstandard_aws_region_nameÚcredentialss                   ún/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/completion/handler.pyÚ_load_credentialszSagemakerLLM._load_credentials)   sž  € ð	YÝ8ð
 (7×':Ñ':Ð;RÐTXÓ'YÐØ#2×#6Ñ#6Ð7JÈDÓ#QÐØ#2×#6Ñ#6Ð7JÈDÓ#QÐØ)×-Ñ-Ð.?ÀÓFˆØ.×2Ñ2°?ÀDÓIˆØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ×ÑÐ:¸DÔAØ(7×(;Ñ(;Ð<TÐVZÓ([ÐØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ!0×!4Ñ!4Ð5FÈÓ!Mˆð Ð"ä-7Ð8IÈ4Ó-PÐ#à&Ð2´zÐBYÔ[^Ô7_Ø"9�ä.8¸ÀtÓ.LÐ$Ø'Ð3¼
ÐC[Ô]`Ô8aØ":�àÐ&Ø"-�à*.×*>Ñ*>Ø/Ø"7Ø/Ø+Ø-Ø-Ø'Ø#9Ø-Ø+ð +?ó +
ˆð ˜OÐ+Ð+øôW ò 	YÜÐWÓXÐXð	Yús   ‚D3 Ä3ENÚmodelÚdataÚmessagesÚlitellm_paramsr#   Úextra_headersc	                 ó  — 	 ddl m}	 ddlm}
  |	|d|«      }t        |«      }|j                  d«      du rd|› d	|› d
|› d�}nd|› d	|› d
|› d�}|j                  dd «      }|�|}t        j                  |«      j                  d«      }t        j                  |||||¬«      } |
d|||¬«      }|j                  |«       |�d|v r|d   |j                  d<   |j                  «       }|S # t        $ r t	        d«      ‚w xY w)Nr   )Ú	SigV4Auth)Ú
AWSRequestr   Ú	sagemakerÚstreamTzhttps://runtime.sagemaker.ú.z/endpoints/z/invocations-response-streamz/invocationsÚsagemaker_base_urlúutf-8)Úheadersr9   r;   r   r<   ÚPOST)ÚmethodÚurlr:   rF   ÚAuthorization)Úbotocore.authr?   Úbotocore.awsrequestr@   r.   r	   ÚgetÚjsonÚdumpsÚencoder   Úvalidate_environmentÚadd_authrF   Úprepare)r3   r6   r9   r:   r;   r<   r   r#   r=   r?   r@   Úsigv4Ú
dns_suffixÚapi_baserD   Úencoded_datarF   ÚrequestÚprepped_requests                      r7   Ú_prepare_requestzSagemakerLLM._prepare_request\   sH  € ð	YÝ/Ý6ñ ! ¨k¸?ÓKˆÜ.¨Ó?ˆ
Ø×Ñ˜xÓ(¨DÑ0Ø3°OÐ3DÀAÀjÀ\ÐQ\Ð]bÐ\cÐcð  A‰Hà3°OÐ3DÀAÀjÀ\ÐQ\Ð]bÐ\cÐcoÐpˆHà$3×$7Ñ$7Ð8LÈdÓ$SÐØÐ)Ø)ˆHä"Ÿj™j¨Ó.×5Ñ5°gÓ>ˆÜ)×>Ñ>Ø!ØØØ+Ø)ð ?ó 
ˆñ $¨6°xÀlÐ\cÔdˆØ�‰�wÔàÐ%¨/¸]Ñ*Jà/<¸_Ñ/MˆG�O‰O˜OÑ,à!(§¡Ó!2ˆàÐøô? ò 	YÜÐWÓXÐXð	Yús   ‚C* Ã*C?FÚmodel_responseÚprint_verboseÚlogging_objÚtimeoutÚacompletionrF   c                 óê  — | j                  |«      \  }}t        |«      }|j                  dd «      }|j                  dd «      }t        j
                  j                  «       }|j                  «       D ]  \  }}||vsŒ|||<   Œ |du rÞ|du r | j                  |||
||||||||||¬«      }|S t        j                  |||||¬«      }| j                  |||||||¬«      }|�|j                  j                  d|i«       | j                  |j                  |j                  t!        t"        |j$                  «      |¬«      }t'        ||d	|¬
«      }|j)                  |d|d|i¬«       |S |du r| j+                  |||
||||||||||¬«      S t        j                  |||||¬«      }|||||||dœ} | j                  d i |¤Ž}	 |�|j                  j                  d|i«       d}	t-        «       }|j/                  g d||j                  |j                  dœ¬«       	 |j1                  |j                  |j                  |j$                  |	¬«      }|j2                  dk7  r!t5        |j2                  |j6                  ¬«      ‚	 t        jA                  |||||||||¬«	      S # t8        $ r'} |j)                  g dt#        | «      d|i¬«       | ‚d } ~ ww xY w# t8        $ r�} t;        j<                  dt#        | «      «       t?        | di «      j                  di «      j                  dd«      }!t?        | di «      j                  di «      j                  dt#        | «      «      }"d|"v r|"dz  }"t5        |!|"¬«      ‚d } ~ ww xY w)!NrB   Úmodel_idT)r;   r9   Úcustom_prompt_dictÚhf_model_namer   Úencodingr[   r]   ra   r#   r6   rF   r<   ©r9   r;   r   r<   rF   )r9   r:   r;   r   r<   r6   r#   ú$X-Amzn-SageMaker-Inference-Component©rV   rF   r:   r]   rA   ©Úcompletion_streamr9   Úcustom_llm_providerr]   Ú Úcomplete_input_dict©ÚinputÚapi_keyÚoriginal_responseÚadditional_args)r;   r9   rb   rc   r[   rd   r]   ra   r   r6   r#   rF   r<   ©r9   r:   r   r<   r6   r#   r;   ç     Àr@©rl   rV   rF   ©rn   ro   rq   ©rI   rF   r:   r^   éÈ   ©Ústatus_codeÚmessagezSagemaker error %sÚresponseÚResponseMetadataÚHTTPStatusCodeéô  ÚErrorÚMessageú+Inference Component Name header is requiredúJ
 pass in via `litellm.completion(..., model_id={InferenceComponentName})`©	r9   Úraw_responser[   r]   Úrequest_datar;   r   rd   r<   © )!r8   r   r/   rM   Úlitellmr   Ú
get_configÚitemsÚasync_streamingr   Útransform_requestrZ   rF   ÚupdateÚmake_sync_callrI   r   r1   Úbodyr   Ú	post_callÚasync_completionr   Úpre_callÚpostry   r   ÚtextÚ	Exceptionr   ÚerrorÚgetattrÚtransform_response)#r3   r9   r;   r[   r\   rd   r]   r   r<   r^   rb   rc   Ú	logger_fnr_   rF   r6   r#   Úinference_paramsrB   ra   ÚconfigÚkÚvr{   r:   Úprepared_requestri   Ústreaming_responseÚ_dataÚprepared_request_argsÚsync_handlerÚsync_responseÚery   Úerror_messages#                                      r7   Ú
completionzSagemakerLLM.completion‹   sq  € ð$ (,×'=Ñ'=¸oÓ'NÑ$ˆ�_Ü"*¨?Ó";ÐØ(×,Ñ,¨X°tÓ<ˆØ)×-Ñ-¨j¸$Ó?ˆô  ×/Ñ/×:Ñ:Ó<ˆØ—L‘L“Nò 	(‰DˆAˆqàÐ)Ò)à&'Ð  Ò#ð		(ð �T‰>Ø˜dÑ"Ø"&×"6Ñ"6Ø%ØØ'9Ø"/Ø$3Ø%Ø#1Ø +Ø%Ø$3Ø +Ø#Ø#1ð #7ó #�ð  �ä.×@Ñ@ØØ%Ø$3Ø#1Ø#ð Aó �ð $(×#8Ñ#8ØØØ%Ø$3Ø#1Ø +Ø$3ð $9ó $Ð ð Ð'ð %×,Ñ,×3Ñ3Ð5[Ð]eÐ4fÔgØ+/×+>Ñ+>Ø-×1Ñ1Ø,×4Ñ4ÜœcÐ#3×#8Ñ#8Ó9Ø +ð	 ,?ó ,Ð!ô -@Ø&7ØØ(3Ø +ô	-Ð"ð ×!Ñ!ØØØ"4Ø!6¸Ð =ð	 "ô ð &Ð%ð
 ˜$ÑØ×(Ñ(Ø!ØØ#5Ø+Ø-Ø!Ø'Ø!Ø /Ø'Ø /ØØ-ð )ó ð ô" (×9Ñ9ØØØ+Ø)Øð :ó 
ˆð ØØ.Ø,Ø&Ø.Ø ñ(
Ðð 1˜4×0Ñ0ÑIÐ3HÑIÐð1	QØÐ#ð !×(Ñ(×/Ñ/Ð1WÐYaÐ0bÔcð ˆGÜ"3Ó"5ˆLà× Ñ ØØà+0Ø 0× 4Ñ 4Ø/×7Ñ7ñ!ð !ô ðØ'3×'8Ñ'8Ø(×,Ñ,Ø,×4Ñ4Ø)×.Ñ.Ø#ð	 (9ó (�ð !×,Ñ,°Ò3Ü(Ø$1×$=Ñ$=Ø -× 2Ñ 2ôð ð 4ô,  ×2Ñ2ØØ&Ø)Ø#ØØØ+ØØ)ð 3ó 

ð 
	
øô# ò à×%Ñ%ØØÜ&)¨!£fØ%:¸EÐ$Bð	 &ô ð �ûðûô ò 	QÜ× Ñ Ð!5´s¸1³vÔ>Ü!(¨¨J¸Ó!;×!?Ñ!?Ð@RÐTVÓ!W×![Ñ![Ð\lÐnqÓ!rˆKÜ# A z°2Ó6×:Ñ:¸7ÀBÓG×KÑKÈIÔWZÐ[\ÓW]Ó^ˆMØ<ÀÑMØÐ!nÑn�Ü ¨[À-ÔPÐPûð	Qús9   Æ?AK ÈA#J Ê	K	Ê""KËK	Ë	K Ë	M2ËBM-Í-M2rV   c                 ó  — |€
t        «       }|j                  |||d¬«      }|j                  dk7  r.t        |j                  t	        |j                  «       «      ¬«      ‚t        d¬«      }|j                  |j                  «       «      S )NT©rF   r:   rB   rw   rx   rk   ©r9   )r   r’   ry   r   r1   Úreadr   Ú
iter_bytes)r3   rV   rF   r:   r]   Úclientr¢   Údecoders           r7   r�   zSagemakerLLM.make_sync_callL  s‡   € ð ˆ>Ü&Ó(ˆFØ%Ÿ{™{ØØØØð	  +ó  
ˆð ×$Ñ$¨Ò+Ü ¨]×-FÑ-FÔPSÐTa×TfÑTfÓThÓPiÔjÐjä.°RÔ8ˆØ×!Ñ! -×":Ñ":Ó"<Ó=Ð=ó    c              ƒ   óv  K  — 	 |€$t        t        j                  j                  ¬«      }|j	                  |||d¬«      ƒ d {  –—† }|j
                  dk7  r!t        |j
                  |j                  ¬«      ‚t        d¬«      }|j                  |j                  «       «      }|S 7 Œa# t        j                  $ r<}	|	j                  j
                  }
t        |
|	j                  j                  ¬«      ‚d }	~	wt        j                  $ r t        dd	¬«      ‚t        $ r}t        d
t!        |«      ¬«      ‚d }~ww xY w­w)N©Úllm_providerTr§   rw   rx   rk   r¨   i˜  zTimeout error occurred.r~   )r   r‡   ÚLlmProvidersÚ	SAGEMAKERr’   ry   r   r“   r   Úaiter_bytesr�   ÚhttpxÚHTTPStatusErrorr{   ÚTimeoutExceptionr”   r1   )r3   rV   rF   r:   r]   r«   r{   r¬   ri   ÚerrÚ
error_coder£   s               r7   Úmake_async_callzSagemakerLLM.make_async_callc  s  è ø€ ð"	BØˆ~Ü/Ü!(×!5Ñ!5×!?Ñ!?ô�ð %+§K¡KØØØØð	 %0ó %÷ ˆHð ×#Ñ# sÒ*Ü$°×1EÑ1EÈxÏ}É}Ô]Ð]ä2¸Ô<ˆGØ'.×':Ñ':¸8×;OÑ;OÓ;QÓ'RÐà$Ð$ðùô. ×$Ñ$ò 	TØ #§¡× 8Ñ 8ˆJÜ ¨ZÀÇÁ×ARÑARÔSÐSûÜ×%Ñ%ò 	UÜ ¨SÐ:SÔTÐTÜò 	BÜ ¨S¼#¸a»&ÔAÐAûð	BüsG   ‚D9„>B& ÁB$ÁA B& Â#D9Â$B& Â&D6Â97C0Ã0+D6ÄD1Ä1D6Ä6D9rb   rc   ra   c              ƒ   ó  K  — t         j                  ||i |¥ddi¥||¬«      ƒ d {  –—† }t        | j                  «      }|||||||dœ} |di |¤Žƒ d {  –—† }|
�|j                  j                  d|
i«       |j                  st        d«      ‚|}| j                  |j                  |j                  t        t        |j                  «      |¬«      ƒ d {  –—† }t        ||d|¬	«      }|j                  g d
dd|i¬«       |S 7 ŒÜ7 Œ¯7 Œ0­w)NrB   Tre   rr   rf   zPrepared request body is emptyrg   rA   rh   rk   zfirst stream response receivedrl   rm   r†   )r   Úasync_transform_requestr   rZ   rF   rŒ   rŽ   Ú
ValueErrorr¹   rI   r   r1   r   r�   )r3   r;   r9   rb   rc   r6   r#   r   rd   r[   ra   r]   r<   rF   r:   Úasyncified_prepare_requestr    r�   Ústream_logging_objri   rž   s                        r7   rŠ   zSagemakerLLM.async_streaming�  sZ  è ø€ ô  -×DÑDØØØ?˜Ð?°¸$Ñ?Ø)Øð Eó 
÷ 
ˆô -5°T×5JÑ5JÓ,KÐ"àØØ.Ø,Ø&Ø.Ø ñ(
Ðñ )CÑ([ÐEZÑ([×"[ÐØÐØ×$Ñ$×+Ñ+Ð-SÐU]Ð,^Ô_à×$Ò$ÜÐ=Ó>Ð>à7BÐØ)-×)=Ñ)=Ø%×)Ñ)Ø$×,Ñ,Ü”cÐ+×0Ñ0Ó1Ø*ð	 *>ó *
÷ $
Ðô %8Ø/ØØ +Ø*ô	%
Ðð 	×ÑØØØ>Ø2°DÐ9ð	 	ô 	
ð "Ð!ð]
øð" #\øð$
ús4   ‚$D	¦D§.D	ÁDÁB D	ÃDÃ-D	ÄD	ÄD	c              ƒ   ót  K  — d}t        t        j                  j                  ¬«      }t        j                  |||	||¬«      ƒ d {  –—† }t        | j                  «      }|||	||||dœ} |di |¤Žƒ d {  –—† }|
j                  g d||j                  |j                  dœ¬«       	 |�|j                  j                  d|i«       	 |j                  |j                  |j                  |j                  |¬	«      ƒ d {  –—† }|j                  d
k7  r!t        |j                  |j                   ¬«      ‚	 t        j)                  ||||
|||	||¬«	      S 7 �Œ7 ŒÞ7 ŒX# t"        $ r*}|
j%                  |d   dt'        |«      d|i¬«       |‚d }~ww xY w# t"        $ r}|› }d|v r|dz  }t        d|¬«      ‚d }~ww xY w­w)Nrs   r¯   re   rr   rk   rt   ru   rf   rv   rw   rx   Úinputsrl   rm   r�   r‚   r~   rƒ   r†   )r   r‡   r±   r²   r   r»   r   rZ   r‘   rI   rF   rŒ   r’   rŽ   ry   r   r“   r”   r�   r1   r—   )r3   r;   r9   rb   rc   r6   r#   rd   r[   r   r]   ra   rF   r<   r^   Úasync_handlerr:   r½   r    r�   r{   r£   r¤   s                          r7   r�   zSagemakerLLM.async_completionÏ  s   è ø€ ð  ˆÜ5Ä7×CWÑCW×CaÑCaÔbˆä,×DÑDØØØ+Ø)Øð Eó 
÷ 
ˆô -5°T×5JÑ5JÓ,KÐ"àØØ.Ø,Ø&Ø.Ø ñ(
Ðñ )CÑ([ÐEZÑ([×"[Ðà×ÑØØà'+Ø,×0Ñ0Ø+×3Ñ3ñð 	ô 	
ð	IØÐ#ð !×(Ñ(×/Ñ/Ð1WÐYaÐ0bÔcðØ(5×(:Ñ(:Ø(×,Ñ,Ø,×4Ñ4Ø)×.Ñ.Ø#ð	 );ó )÷ #�ð ×'Ñ'¨3Ò.Ü(°X×5IÑ5IÐS[×S`ÑS`ÔaÐað /ô   ×2Ñ2ØØ!Ø)Ø#ØØØ+ØØ)ð 3ó 

ð 
	
ðy
ùð& #\øð$#ùô ò à×%Ñ%Ø˜x™.ØÜ&)¨!£fØ%:¸DÐ$Að	 &ô ð �ûðûô ò 	IØ ˜cˆMØ<ÀÑMØÐ!nÑn�Ü ¨S¸-ÔHÐHûð		Iüsx   ‚AF8ÁEÁ.F8Á5EÁ60F8Â'F Ã6E Ã=EÃ>4E Ä2 F8ÅF8ÅE Å	FÅ!%FÆFÆF Æ	F5ÆF0Æ0F5Æ5F8rn   c                 óä  — ddl }| j                  |«      \  }}|j                  |j                  |j                  |j
                  |¬«      }|j                  d¬«      }t        |«      }|j                  dd«       t        j                  j                  «       }|j                  «       D ]  \  }}||vsŒ|||<   Œ t        j                  |«      }|j                  |||i «      }t!        j"                  |«      j%                  d«      }d|› d	|›d
�}|j'                  |d||dœ¬«       	 |j)                  |d|d¬«      }t!        j4                  |d   j7                  «       j9                  d«      «      }|j;                  |d|d|i¬«        |d|› �«       ddlm}  |dt!        j"                  |«      j%                  d«      ddi¬ «      }tA        «       }|jC                  ||||d|||	xs i ¬!«      S # t*        $ ru}t-        |di «      j/                  di «      j/                  dd«      }t-        |di «      j/                  di «      j/                  dt1        |«      «      }t3        ||¬«      ‚d}~ww xY w)"zU
        Supports Hugging Face (TGI), Voyage, and Cohere embedding endpoints
        r   N)r!   r    r"   Úregion_namezsagemaker-runtime)Úservice_namerB   rE   zE
        response = client.invoke_endpoint(
            EndpointName=zA,
            ContentType="application/json",
            Body=f"z_",  # Use !r for safe representation
            CustomAttributes="accept_eula=true",
        )rk   )rl   Úrequest_strru   zapplication/jsonzaccept_eula=true)ÚEndpointNameÚContentTypeÚBodyÚCustomAttributesr{   r|   r}   r~   r   r€   rx   rÈ   Úutf8rl   rm   zraw model_response: )ÚResponserw   zcontent-type)ry   ÚcontentrF   )r9   r„   r[   r]   ro   r…   r   r<   )"Úboto3r8   ÚSessionÚ
access_keyÚ
secret_keyÚtokenr«   r   r/   r‡   r   rˆ   r‰   r   Úget_model_configÚtransform_embedding_requestrN   rO   rP   r‘   Úinvoke_endpointr”   r–   rM   r1   r   Úloadsr©   Údecoder�   r´   rË   r   Útransform_embedding_response)r3   r9   rn   r[   r\   rd   r]   r   rb   r<   r˜   rÍ   r6   r#   Úsessionr«   r™   rš   r›   rœ   Úprovider_configr…   r:   rÅ   r{   r£   ry   r¤   ÚHttpxResponseÚmock_responses                                 r7   Ú	embeddingzSagemakerLLM.embedding*  sÃ  € ó" 	ð (,×'=Ñ'=¸oÓ'NÑ$ˆ�_ð Ÿ™Ø)×4Ñ4Ø"-×"8Ñ"8Ø)×/Ñ/Ø'ð	 'ó 
ˆð  Ÿ™Ð4G˜ÓHˆô #+¨?Ó";ÐØ×Ñ˜X tÔ,ô  ×/Ñ/×:Ñ:Ó<ˆØ—L‘L“Nò 	(‰DˆAˆqàÐ)Ò)à&'Ð  Ò#ð		(ô ":×!JÑ!JÈ5Ó!QˆØ-×IÑIÈ%ÐQVÐXgÐikÓlˆÜ—j‘j Ó.×5Ñ5°gÓ>ˆð"à˜ð !à�8ð 
ð	ˆð 	×ÑØØØ48ÈÑUð 	ô 	
ð
	QØ×-Ñ-Ø"Ø.ØØ!3ð	 .ó ˆHô —:‘:˜h vÑ.×3Ñ3Ó5×<Ñ<¸VÓDÓEˆà×ÑØØØ&Ø2°DÐ9ð	 	ô 	
ñ 	Ð,¨X¨JÐ7Ô8õ 	4ñ  -ØÜ—J‘J˜xÓ(×/Ñ/°Ó8Ø#Ð%7Ð8ô 
ˆô +Ó,ˆð ×;Ñ;ØØ&Ø)Ø#ØØ%Ø+Ø)Ò/¨Rð <ó 	
ð 		
øô; ò 	QÜ!(¨¨J¸Ó!;×!?Ñ!?Ð@RÐTVÓ!W×![Ñ![Ð\lÐnqÓ!rˆKÜ#*¨1¨j¸"Ó#=×#AÑ#AÀ'È2Ó#N×#RÑ#RÐS\Ô^aÐbcÓ^dÓ#eˆMÜ ¨[À-ÔPÐPûð	Qús   Ä)G1 Ç1	I/Ç:A0I*É*I/)N)Ú__name__Ú
__module__Ú__qualname__Údictr8   r1   Úlistr   rZ   r   r   ÚLiteLLMLoggingObjÚfloatr´   ÚTimeoutÚboolr¥   r�   r¹   rŠ   r�   r   rÜ   r†   r­   r7   r   r   (   s™  „ ð1,àó1,ðx &*ñ-ð ð-ð ð	-ð
 Ð'Ñ(ð-ð ð-ð ð-ð ð-ð ˜d‘{ó-ðr 15ØØØØ!Øñ
àð
ð ð
ð &ð	
ð
  ð
ð 'ð
ð ð
ð ð
ð ˜Ÿ™Ñ&¨Ñ-ð
ð ð
ð ó
ðN ñ>àð>ð ð>ð ó	>ð: ñ*Bàð*Bð ð*Bð ó	*BðX>"àÐ'Ñ(ð>"ð ð>"ð !ð	>"ð
 ˜T‘zð>"ð ð>"ð &ð>"ð ˜‘*ð>"ð 'ð>"ð ð>"ð ó>"ð@Y
àÐ'Ñ(ðY
ð ðY
ð !ð	Y
ð
 ˜T‘zðY
ð ðY
ð &ðY
ð ðY
ð 'ðY
ð ˜‘*ðY
ð ðY
ð óY
ðH ØØñl
àðl
ð ðl
ð *ð	l
ð
  ðl
ð ôl
r­   r   ))rN   Úcollections.abcr   Úcopyr   Útypingr   r   r´   r‡   Úlitellm._loggingr   Ú#litellm.litellm_core_utils.asyncifyr   Ú(litellm.litellm_core_utils.aws_partitionr	   Ú*litellm.litellm_core_utils.litellm_loggingr
   râ   Ú!litellm.llms.bedrock.base_aws_llmr   Ú&litellm.llms.custom_httpx.http_handlerr   r   Úlitellm.types.llms.openair   Úlitellm.utilsr   r   r   r   Úcommon_utilsr   r   Úembedding.transformationr   Útransformationr   r   Ú__annotations__r   r†   r­   r7   ú<module>rõ      sg   ðÜ Ý $Ý ß ã ã Ý +Ý 8Ý GÝ SÝ 8÷õ 7÷ó ÷ AÝ ?Ý +á)Ó+Ð �%Ó +ðôn	
�:õ n	
r­   