Ë
    uPêjí  ã                   óÌ   — d dl Z d dlmZmZmZmZ d dlZd dlZd dlm	Z
 d dlmZmZmZ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 neZ G d„ de«      Zy)é    N)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)ÚLogging)ÚAsyncHTTPHandlerÚHTTPHandlerÚ_get_httpx_clientÚget_async_httpx_client)ÚBedrockPreparedRequest)ÚRerankRequest)ÚRerankResponseé   )Ú
BaseAWSLLM)ÚBedrockErroré   )ÚBedrockRerankConfig)ÚAWSPreparedRequestc                   óF  — e Zd Z	 	 ddededeej                  z  dz  dedz  fd„Z		 	 	 	 	 	 	 	 	 dde
de
d	ee
ee
ef   z     d
edededz  dee
   dz  dedz  dedz  dedz  deej                  z  dz  de
dz  dedz  deez  dz  defd„Zde
de
dz  dedz  ded
edefd„Zy)ÚBedrockRerankHandlerNÚprepared_requestÚlogging_objÚtimeoutÚclientc              ƒ   ó   K  — |€$t        t        j                  j                  ¬«      }	 |j	                  |d   t        |d   j                  «      |d   ||¬«      ƒ d {  –—† }|j                  «        t        «       j!                  |j#                  «       «      S 7 Œ;# t        j                  $ r<}|j                  j                  }t        ||j                  j                  ¬«      ‚d }~wt        j                  $ r t        dd¬«      ‚w xY w­w)	N)Úllm_providerÚendpoint_urlÚpreppedÚbody)ÚurlÚheadersÚdatar   r   ©Ústatus_codeÚmessageé˜  úTimeout error occurred.)r   ÚlitellmÚLlmProvidersÚBEDROCKÚpostÚdictr!   Úraise_for_statusÚhttpxÚHTTPStatusErrorÚresponser$   r   ÚtextÚTimeoutExceptionr   Ú_transform_responseÚjson)Úselfr   r   r   r   r0   ÚerrÚ
error_codes           úh/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/rerank/handler.pyÚarerankzBedrockRerankHandler.arerank   sö   è ø€ ð ˆ>Ü+¼×9MÑ9M×9UÑ9UÔVˆFð	SØ$*§K¡KØ$ ^Ñ4ÜÐ-¨iÑ8×@Ñ@ÓAØ% fÑ-ØØ'ð %0ó %÷ ˆHð ×%Ñ%Ô'ô #Ó$×8Ñ8¸¿¹»ÓIÐIðùô ×$Ñ$ò 	RØ #§¡× 8Ñ 8ˆJÜ¨:¸s¿|¹|×?PÑ?PÔQÐQûÜ×%Ñ%ò 	SÜ¨3Ð8QÔRÐRð	Süs:   ‚'Dª5B ÁBÁ B Á4'DÂB ÂDÂ07C'Ã'$DÄDÚmodelÚqueryÚ	documentsÚoptional_paramsÚtop_nÚrank_fieldsÚreturn_documentsÚmax_chunks_per_docÚ	_is_asyncÚapi_baseÚextra_headersÚreturnc           
      óŠ  — t        ||||||¬«      }t        «       j                  |«      }| j                  ||||t	        t
        |«      ¬«      }|j                  |d||d   t        |d   j                  «      dœ¬«       |
r.| j                  ||||�t        |t        «      r|¬«      S d ¬«      S |�t        |t        «      s
t        «       }	 |j                  |d   t        |d   j                  «      |d	   |¬
«      }|j                  «        |j-                  |j(                  d¬«       |j/                  «       }t        «       j1                  |«      S # t        j                   $ r<}|j"                  j$                  }t'        ||j"                  j(                  ¬«      ‚d }~wt        j*                  $ r t'        dd¬«      ‚w xY w)N)r:   r;   r<   r>   r?   r@   )r:   r=   rC   rD   r"   Ú r   r   )Úcomplete_input_dictrC   r!   )ÚinputÚapi_keyÚadditional_args)r   r   r   r   )r    r!   r"   r   r#   r&   r'   )Úoriginal_responserJ   )r   r   Ú_transform_requestÚ_prepare_requestr   r,   Úpre_callr!   r9   Ú
isinstancer   r	   r
   r+   r-   r.   r/   r0   r$   r   r1   r2   Ú	post_callr4   r3   )r5   r:   r;   r<   r=   r   r>   r?   r@   rA   rB   r   rC   rD   r   Úrequest_datar"   r   r0   r6   r7   Úresponse_jsons                         r8   ÚrerankzBedrockRerankHandler.rerank7   sï  € ô" ,ØØØØØ#Ø-ô
ˆô *Ó+×>Ñ>¸|ÓLˆà"&×"7Ñ"7ØØ+ØØ'Ü”d˜DÓ!ð #8ó #
Ðð 	×ÑØØà'+Ø,¨^Ñ<ÜÐ 0°Ñ ;× CÑ CÓDñð 	ô 	
ñ Ø—<‘<Ø Ø'ØØ!'Ð!3¼
À6ÔK[Ô8\�vð	  ó ð ð cgð	  ó ð ð ˆ>¤¨F´KÔ!@Ü&Ó(ˆFð	SØ$Ÿk™kØ$ ^Ñ4ÜÐ-¨iÑ8×@Ñ@ÓAØ% fÑ-Øð	 *ó ˆHð ×%Ñ%Ô'ð 	×ÑØ&Ÿm™mØð 	ô 	
ð
  (Ÿ}™}›ˆä"Ó$×8Ñ8¸ÓGÐGøô ×$Ñ$ò 	RØ #§¡× 8Ñ 8ˆJÜ¨:¸s¿|¹|×?PÑ?PÔQÐQûÜ×%Ñ%ò 	SÜ¨3Ð8QÔRÐRð	Sús   ÃAE ÅGÅ'7FÆ$Gr"   c           	      ó€  — | j                  ||«      }| j                  ||j                  |j                  ¬«      \  }}|j	                  dd«      }|› d�}t        j                  |«      j                  d«      }	ddi}
|�ddi|¥}
| j                  |j                  |j                  |||	|
d¬	«      }t        |||	|¬
«      S )N)rC   Úaws_bedrock_runtime_endpointÚaws_region_namezbedrock-runtimezbedrock-agent-runtimez/rerankzutf-8zContent-Typezapplication/jsonF)ÚcredentialsrW   rD   r   r"   r!   Úsupports_bearer_token)r   r   r   r"   )Ú*_get_boto_credentials_from_optional_paramsÚget_runtime_endpointrV   rW   Úreplacer4   ÚdumpsÚencodeÚget_request_headersrX   r   )r5   r:   rC   rD   r"   r=   Úboto3_credentials_infoÚ_Úproxy_endpoint_urlr   r!   r   s               r8   rN   z%BedrockRerankHandler._prepare_request…   sû   € ð )-×(WÑ(WÐXgÐinÓ(oÐð !%× 9Ñ 9ØØ)?×)\Ñ)\Ø2×BÑBð !:ó !
ÑˆÐð
 0×7Ñ7Ð8IÐKbÓcÐØ 2Ð3°7Ð;Ðä—j‘j Ó&×-Ñ-¨gÓ6ˆØ!Ð#5Ð6ˆØÐ$Ø%Ð'9ÐK¸]ÐKˆGà×1Ñ1Ø.×:Ñ:Ø2×BÑBØ'Ø+ØØØ"'ð 2ó 
ˆô &Ø+ØØØô	
ð 	
ó    )NN)	NNTNFNNNN)Ú__name__Ú
__module__Ú__qualname__r   ÚLitellmLoggingÚfloatr.   ÚTimeoutr   r9   ÚstrÚlistr,   r   ÚintÚboolr	   r   rT   rN   © rc   r8   r   r      s¸  „ ð
 15Ø*.ñJà0ðJð $ðJð ˜Ÿ™Ñ&¨Ñ-ð	Jð
 ! 4Ñ'óJðB !Ø(,Ø(,Ø)-Ø!&Ø04Ø#Ø%)Ø8<ñLHàðLHð ðLHð ˜˜d 3¨ 8™nÑ,Ñ-ð	LHð
 ðLHð $ðLHð �T‰zðLHð ˜#‘Y Ñ%ðLHð  ™+ðLHð   $™JðLHð ˜$‘;ðLHð ˜Ÿ™Ñ&¨Ñ-ðLHð ˜‘*ðLHð ˜d‘{ðLHð Ð.Ñ.°Ñ5ðLHð  
ó!LHð\'
àð'
ð ˜‘*ð'
ð ˜d‘{ð	'
ð
 ð'
ð ð'
ð 
 ô'
rc   r   )r4   Útypingr   r   r   r   r.   r(   Ú*litellm.litellm_core_utils.litellm_loggingr   rg   Ú&litellm.llms.custom_httpx.http_handlerr   r	   r
   r   Úlitellm.types.llms.bedrockr   Úlitellm.types.rerankr   Úlitellm.types.utilsr   Úbase_aws_llmr   Úcommon_utilsr   Útransformationr   Úbotocore.awsrequestr   r   rn   rc   r8   ú<module>ry      sO   ðÛ ß 2Ó 2ã ã Ý P÷ó õ >Ý .Ý .å %Ý 'Ý /áÞ6àÐôP
˜:õ P
rc   