Ë
    uPêja\  ã                   óB  — d dl 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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mZ d
dlmZmZ ddlm Z m!Z!m"Z" 	 	 	 ddedz  de#de$de#de#de%de
de&dz  de&de'dz  de(eejR                  f   fd„Z* G d„ de«      Z+y)é    N)ÚAnyÚFinal)Ú!update_headers_with_filtered_beta)ÚLogging)ÚAsyncHTTPHandlerÚHTTPHandlerÚ_get_httpx_clientÚget_async_httpx_client)Úchat_completions)Úrust_chat_completions_accepts)ÚModelResponse)ÚCustomStreamWrapperé   )Ú
BaseAWSLLMÚCredentials)ÚBedrockErrorÚ_get_all_bedrock_regionsé   )ÚAWSEventStreamDecoderÚMockResponseIteratorÚ	make_callÚclientÚapi_baseÚheadersÚdataÚmodelÚmessagesÚlogging_objÚ	json_modeÚfake_streamÚstream_chunk_sizeÚreturnc
                 ó"  — | €
t        «       } | j                  |||| |¬«      }
|
j                  dk7  r.t        |
j                  t	        |
j                  «       «      ¬«      ‚|r[t        j                  «       j                  ||
t        j                  «       d|i d||t        j                  ¬«
      }t        ||¬«      }n.t        ||¬«      }|j                  |
j                  |	¬	«      «      }|j                  |dd
d|i¬«       ||
j                  fS )N)r   r   Ústreamr   éÈ   ©Ústatus_codeÚmessageTÚ )
r   ÚresponseÚmodel_responser$   r   Úoptional_paramsÚapi_keyr   r   Úencoding)r+   r   )r   r   )Ú
chunk_sizezfirst stream response receivedÚcomplete_input_dict)Úinputr-   Úoriginal_responseÚadditional_args)r	   Úpostr'   r   ÚstrÚreadÚlitellmÚAmazonConverseConfigÚ_transform_responser   r.   r   r   Ú
iter_bytesÚ	post_callr   )r   r   r   r   r   r   r   r   r    r!   r*   r+   Úcompletion_streamÚdecoders                 úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/chat/converse_handler.pyÚmake_sync_callr?      s'  € ð €~Ü"Ó$ˆà—k‘kØØØØˆØð "ó €Hð ×Ñ˜sÒ"Ü x×';Ñ';ÄSÈÏÉËÓEYÔZÐZáÜ/6×/KÑ/KÓ/M×/aÑ/aØØÜ"×0Ñ0Ó2ØØ#ØØØØÜ×%Ñ%ð 0bó 0
ˆô "6À^Ð_hÔ!iÑä.°UÀiÔPˆØ#×.Ñ.¨x×/BÑ/BÐN_Ð/BÓ/`ÓaÐð ×ÑØØØ:Ø.°Ð5ð	 ô ð ˜h×.Ñ.Ð.Ð.ó    c                   ó®  ‡ — e Zd Zdˆ fd„Zdi dddddfdedededed	eej                  z  dz  d
e
dededededz  dededz  dedz  dedz  defd„Zdi dddfdedededed	eej                  z  dz  d
e
dedededededz  dedz  dedeez  fd„Z	 	 	 	 ddedededz  deded
e
deded	eej                  z  dz  dededz  deez  dz  dedz  fd„Zˆ xZS )ÚBedrockConverseLLMr"   Nc                 ó"   •— t         ‰| �  «        y )N)ÚsuperÚ__init__)ÚselfÚ	__class__s    €r>   rE   zBedrockConverseLLM.__init__S   s   ø€ Ü‰ÑÕr@   Fr   r   r   r+   Útimeoutr   r,   Úlitellm_paramsÚcredentialsr   r    r   r-   r!   c              ƒ   óÒ  K  — t        j                  «       j                  |||	|
|¬«      ƒ d {  –—† }t        j                  |«      }| j                  ||
j                  d«      xs d|||||¬«      }|j                  |d||t        |j                  «      dœ¬«       t        ||t        |j                  «      |||||||¬«
      ƒ d {  –—† \  }}t        ||d	||¬
«      }|S 7 Œ´7 Œ­w)N©r   r   r,   rI   r   Úaws_region_nameú	us-west-2©rJ   rM   Úextra_headersÚendpoint_urlr   r   r-   r)   ©r0   r   r   ©r1   r-   r3   )
r   r   r   r   r   r   r   r    r   r!   Úbedrock©r<   r   Úcustom_llm_providerr   Ú_response_headers)r7   r8   Ú_async_transform_requestÚjsonÚdumpsÚget_request_headersÚgetÚpre_callÚdictr   r   r   )rF   r   r   r   r+   rH   r.   r   r$   r,   rI   rJ   Ú	logger_fnr   r   r    r   r-   r!   Úrequest_datar   Úpreppedr<   Úresponse_headersÚstreaming_responses                            r>   Úasync_streamingz"BedrockConverseLLM.async_streamingV   s'  è ø€ ô* %,×$@Ñ$@Ó$B×$[Ñ$[ØØØ+Ø)Øð %\ó %
÷ 
ˆô —j‘j Ó.ˆà×1Ñ1Ø#Ø*×.Ñ.Ð/@ÓAÒPÀ[Ø!Ø!ØØØð 2ó 
ˆð 	×ÑØØà'+Ø$Ü §¡Ó0ñð 	ô 	
ô 5>ØØÜ˜Ÿ™Ó)ØØØØ#Ø#ØØ/ô5
÷ /
Ñ+ÐÐ+ô %8Ø/ØØ )Ø#Ø.ô%
Ðð "Ð!ðc
øð</
ús"   ‚,C'®C#¯BC'Ã	C%Ã
C'Ã%C'r   Úskip_pre_call_loggingc              ƒ   óL  K  — t        j                  «       j                  |||	|
|¬«      ƒ d {  –—† }t        j                  |«      }| j                  ||
j                  d«      xs d|||||¬«      }|s"|j                  |d|||j                  dœ¬«       t        |j                  «      }|�t        |t        «      sdi }|�:t        |t        «      st        |t        «      rt        j                  |«      }||d<   t!        |t         j"                  j$                  ¬	«      }n|}	 |j'                  ||||¬
«      ƒ d {  –—† }|j)                  «        t        j                  «       j7                  |||t        |t8        «      r|nd|d|||	|¬«
      }|j;                  |j                  «       |S 7 �Œ€7 Œs# t        j*                  $ r<}|j,                  j.                  }t1        ||j,                  j2                  ¬«      ‚d }~wt        j4                  $ r t1        dd¬«      ‚w xY w­w)NrL   rM   rN   rO   r)   rR   rS   rH   )ÚparamsÚllm_provider©Úurlr   r   r   r&   é˜  úTimeout error occurred.F©
r   r*   r+   r$   r   r-   r   r   r,   r.   )r7   r8   rX   rY   rZ   r[   r\   r]   r   r^   Ú
isinstancer   ÚfloatÚintÚhttpxÚTimeoutr
   ÚLlmProvidersÚBEDROCKr4   Úraise_for_statusÚHTTPStatusErrorr*   r'   r   ÚtextÚTimeoutExceptionr9   ÚboolÚset_provider_response_headers)rF   r   r   r   r+   rH   r.   r   r$   r,   rI   rJ   r_   r   r   r-   re   r`   r   ra   Ú_paramsr*   ÚerrÚ
error_codeÚtransformed_responses                            r>   Úasync_completionz#BedrockConverseLLM.async_completionž   s0  è ø€ ô& %,×$@Ñ$@Ó$B×$[Ñ$[ØØØ+Ø)Øð %\ó %
÷ 
ˆô —j‘j Ó.ˆà×1Ñ1Ø#Ø*×.Ñ.Ð/@ÓAÒPÀ[Ø!Ø!ØØØð 2ó 
ˆñ %Ø× Ñ ØØà+/Ø (Ø&Ÿ™ñ!ð !ô ô �w—‘Ó'ˆØˆ>¤¨FÔ4DÔ!EØˆGØÐ"Ü˜g¤uÔ-´¸GÄSÔ1IÜ#Ÿm™m¨GÓ4�GØ%,�˜	Ñ"Ü+°7Ì×I]ÑI]×IeÑIeÔf‰FàˆFð	SØ$*§K¡KØØØØ'ð	 %0ó %÷ ˆHð ×%Ñ%Ô'ô '.×&BÑ&BÓ&D×&XÑ&XØØØ)Ü'¨´Ô5‘6¸5Ø#ØØØØ+Øð 'Yó '
Ðð 	×:Ñ:¸8×;KÑ;KÔLØ#Ð#ðQ
ùð\ùô ×$Ñ$ò 	RØ #§¡× 8Ñ 8ˆJÜ¨:¸s¿|¹|×?PÑ?PÔQÐQûÜ×%Ñ%ò 	SÜ¨3Ð8QÔRÐRð	SüsG   ‚,H$®F.¯C5H$Ä%F3 Ä=F1Ä>F3 ÅAH$Æ1F3 Æ3H!Ç7G=Ç=$H!È!H$Úcustom_prompt_dictÚacompletionrP   c                 ó4  ‡ ‡‡‡‡‡‡‡
‡‡‡‡‡9‡:‡;‡<— ‰j                  dd «      Š<‰j                  dd «      }‰j                  dd «      }‰j                  dd«      }‰j                  dd«      }|�‰ j                  |¬«      }n¶‰}|}dD ]#  }|j                  |«      sŒ|t	        |«      d  } n d }|j                  d	d
«      d   }|t        «       v rd	|v r|}|j                  d	d
«      d
   }|}dD ](  }|j                  |«      sŒ|j                  |dd
«      } n ‰ j                  |¬«      }|�	d‰vr|‰d<   t        j                  «       j                  |‰‰<d¬«      }‰ j                  ‰‰|¬«      }‰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 «       |‰d<   ‰ j                  ||||| |!||#|$|%¬«
      Š9‰ j                  ||"|¬«      \  }&Š;‰<�‰<du r|s|&› d|› d �}&‰;› d|› d �Š;n|&› d|› d!�}&‰;› d|› d!�Š;d"d#iŠ:|�d"d#i|¥Š:t        ‰:d$¬%«      Š:i ‰¥d‰9j                  fd‰9j                   fd‰9j"                  fd|ffD �'�(ci c]
  \  }'}(|(�|'|(“Œ c}(}'¥})t%        ‰‰|)d‰‰<¬&«      }*|*rŽd'‰i‰¥‰;‰:d(œ}+‰j'                  ‰d|+¬)«       t)        j*                  ‰‰d|+¬*«      },|	r2t)        j,                  ‰‰|)‰‰‰;d‰:‰
|,ˆˆˆ9ˆˆ:ˆˆˆˆˆˆˆˆ;ˆ ˆ<ˆ
fd+„¬,«      S t)        j.                  ‰‰|)‰‰‰;d‰:‰
|,¬-«
      }-|-�|-S |	rYt1        ‰t2        «      rd Š‰<du r#‰ j5                  ‰‰‰;‰‰‰‰d‰‰‰:‰
‰||‰9‰|¬.«      S ‰ j7                  ‰‰‰;‰‰‰‰‰<‰‰‰:‰
‰‰9‰¬/«      S t        j                  «       j9                  ‰‰‰‰|¬0«      }.t;        j<                  |.«      }/‰ j?                  ‰9||‰;|/‰:‰¬1«      }0|*s"‰j'                  ‰d|/‰;|0j@                  d(œ¬)«       ‰�t1        ‰tB        «      rJi }1‰
�:t1        ‰
tD        «      st1        ‰
tF        «      rtI        jJ                  ‰
«      Š
‰
|1d2<   tM        |1«      Šn‰Š‰<�L‰<du rHtO        ‰�t1        ‰t2        «      r‰nd ‰;|0j@                  |/‰‰‰|||¬3«
      \  }2}3tQ        |2‰d‰|3¬4«      }4|4S 	 ‰jS                  ‰;|0j@                  |/‰¬5«      }5|5jU                  «        t        j                  «       jc                  ‰|5‰t1        ‰<td        «      r‰<nd‰d|/‰‰‰¬9«
      }8|8jg                  |5j@                  «       |8S c c}(}'w # tH        jV                  $ r<}6|6jX                  jZ                  }7t]        |7|6jX                  j^                  ¬6«      ‚d }6~6wtH        j`                  $ r t]        d7d8¬6«      ‚w xY w):Nr$   r!   Úmodel_idr    Fr   )rƒ   )zbedrock/converse/zbedrock/z	converse/ú/r   r   )znova-2/znova/r)   rM   rT   )r    r   r$   rV   )r,   r   rƒ   Úaws_secret_access_keyÚaws_access_key_idÚaws_session_tokenÚaws_role_nameÚaws_session_nameÚaws_profile_nameÚaws_bedrock_runtime_endpointÚaws_web_identity_tokenÚaws_sts_endpointÚaws_external_id)
r†   r…   r‡   rM   r‰   rŠ   rˆ   rŒ   r�   rŽ   )r   r‹   rM   Tz/model/z/converse-streamz	/conversezContent-Typezapplication/jsonÚbedrock_converse)r   Úprovider)r   r   r,   rV   rI   r$   r   rR   rS   )r   r   r-   r3   c                  óF   •— ‰j                  ‰	‰‰‰
‰‰‰‰‰‰‰‰‰‰‰ d¬«      S )NT)r   r   r   r+   r.   r   r,   r$   rI   r_   r   rH   r   rJ   r-   re   )r   )r-   r   rJ   r.   r   rI   r_   r   r   r   r+   r,   Úproxy_endpoint_urlrF   r$   rH   s   €€€€€€€€€€€€€€€€r>   ú<lambda>z/BedrockConverseLLM.completion.<locals>.<lambda>¥  sH   ø€ ¨D×,AÑ,AØ#Ø!)Ø!3Ø'5Ø!)Ø$/Ø(7Ø%Ø'5Ø"+Ø 'Ø 'Ø%Ø$/Ø 'Ø.2ð! -Bó -€ r@   )r   r   r,   r+   r-   r   rV   rP   rH   Úon_responseÚpython_fallback)
r   r   r,   r+   r-   r   rV   rP   rH   r”   )r   r   r   r+   r.   r   r,   r$   rI   r_   r   rH   r   r   r    rJ   r-   r!   )r   r   r   r+   r.   r   r,   r$   rI   r_   r   rH   r   rJ   r-   rL   rO   rH   )
r   r   r   r   r   r   r   r   r    r!   rU   ri   r&   rk   rl   rm   )4Úpopr\   Úencode_model_idÚ
startswithÚlenÚsplitr   Úreplacer7   r8   Úshould_fake_streamÚ_get_aws_region_nameÚget_credentialsÚget_runtime_endpointr   Ú
access_keyÚ
secret_keyÚtokenr   r]   Úrust_chat_completions_bridgeÚresponse_loggerÚachat_completions_or_fallbackr   rn   r   rd   r   Ú_transform_requestrY   rZ   r[   r   r   ro   rp   rq   rr   r	   r?   r   r4   ru   rv   r*   r'   r   rw   rx   r9   ry   rz   )=rF   r   r   r   r€   r+   r.   r   r,   r�   rH   rI   r_   rP   r   r-   r!   Úunencoded_model_idr    r   ÚmodelIdÚ_model_for_idÚ	_strippedÚrpÚ_region_from_modelÚ_potential_regionÚ_nova_prefixrM   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   rQ   ÚkeyÚvalueÚrust_optional_paramsÚserves_via_rustÚrust_logging_argsÚlog_rust_post_callÚrust_responseÚ_datar   ra   r{   r<   rb   rc   r*   r|   r}   Úsync_transformed_responserJ   r   r’   r$   s=   ```  ```` ``` ``                                         @@@@r>   Ú
completionzBedrockConverseLLM.completionû   s  ÿÿ€ ð& (×+Ñ+¨H°dÓ;ˆØ#2×#6Ñ#6Ð7JÈDÓ#QÐØ$3×$7Ñ$7¸
ÀDÓ$IÐØ%×)Ñ)¨-¸Ó?ˆØ*×.Ñ.¨{¸EÓBˆ	ØÐ)Ø×*Ñ*Ð4FÐ*ÓG‰Gð "ˆMØ%ˆIØDò �Ø×'Ñ'¨Õ+Ø )¬#¨b«'¨)Ð 4�IÙðð .2ÐØ'0§¡°s¸AÓ'>¸qÑ'AÐØ Ô$<Ó$>Ñ>À3È)ÑCSØ%6Ð"Ø%ŸO™O¨C°Ó3°AÑ6�	Ø )�Ø 4ò �Ø×'Ñ'¨Õ5Ø$1×$9Ñ$9¸,ÈÈAÓ$N�MÙðð ×*Ñ*°MÐ*ÓBˆGà!Ð-Ð2CÈ?Ñ2ZØ5G�Ð 1Ñ2ä×2Ñ2Ó4×GÑGØ#ØØØ )ð	 Hó 
ˆð "&×!:Ñ!:Ø+ØØ'ð ";ó "
ˆð (7×':Ñ':Ð;RÐTXÓ'YÐØ#2×#6Ñ#6Ð7JÈDÓ#QÐØ#2×#6Ñ#6Ð7JÈDÓ#QÐØ.×2Ñ2°?ÀDÓIˆØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ.=×.AÑ.AØ*¨Dó/
Ð$ð )8×(;Ñ(;Ð<TÐVZÓ([ÐØ"1×"5Ñ"5Ð6HÈ$Ó"OÐØ!0×!4Ñ!4Ð5FÈÓ!MˆØ×ÑÐ-¨tÔ4à,;ˆÐ(Ñ)à*.×*>Ñ*>Ø/Ø"7Ø/Ø+Ø-Ø-Ø'Ø#9Ø-Ø+ð +?ó +
ˆð ,0×+DÑ+DØØ)EØ+ð ,Eó ,
Ñ(ˆÐ(ð
 Ð 6¨T¡>¹;Ø*˜^¨7°7°)Ð;KÐLˆLØ$6Ð#7°w¸w¸iÐGWÐ!XÑà*˜^¨7°7°)¸9ÐEˆLØ$6Ð#7°w¸w¸iÀyÐ!QÐð "Ð#5Ð6ˆØÐ$Ø%Ð'9ÐK¸]ÐKˆGô 4¸GÐN`Ôaˆð'
Øð'
ð
 )¨+×*@Ñ*@ÐAØ,¨k×.DÑ.DÐEØ(¨+×*;Ñ*;Ð<Ø&¨Ð8ð	#÷	á�C˜ð Ð$ð �U‘
ó	ð'
Ðô "?ØØØ0Ø )Ø)Øô"
ˆñ ð  ð(à%ð(ð /Ø"ñ(Ðð × Ñ  x¸ÐM^Ð Ô_Ü(D×(TÑ(TØ'Ø!ØØ 1ô	)Ðñ Ü3×QÑQØØ%Ø$8Ø#1Ø#Ø/Ø(1Ø")Ø#Ø 2÷%÷ %ò %ôð ô< $@×#PÑ#PØØ!Ø 4Ø-ØØ+Ø$-Ø%ØØ.ô$ˆMð Ð(Ø$Ð$ñ Ü˜&¤+Ô.Ø�Ø˜‰~Ø×+Ñ+ØØ%Ø/Ø#1Ø%Ø +Ø$3ØØ#1Ø'Ø#Ø#Ø!Ø'Ø +Ø +Ø#Ø&7ð% ,ó ð ð* ×(Ñ(ØØ!Ø+Ø-Ø!Ø'Ø /ØØ-Ø#ØØØØ'Øð )ó ð ô( ×3Ñ3Ó5×HÑHØØØ+Ø)Ø!ð Ió 
ˆô —j‘j Ó'ˆà×1Ñ1Ø#Ø+Ø'Ø+ØØØð 2ó 
ˆñ  Ø× Ñ ØØà+/Ø 2Ø&Ÿ™ñ!ð !ô ð ˆ>œZ¨Ô0@ÔAØˆGØÐ"Ü˜g¤uÔ-´¸GÄSÔ1IÜ#Ÿm™m¨GÓ4�GØ%,�˜	Ñ"Ü& wÓ/‰FàˆFàÐ &¨D¡.Ü2@Ø"(Ð"4¼ÀFÌKÔ9X™Ð^bØ+ØŸ™ØØØ!Ø'Ø#Ø'Ø"3ô3Ñ/ÐÐ/ô )<Ø"3ØØ$-Ø'Ø"2ô)Ðð &Ð%ð	SØ$Ÿk™kØ&ØŸ™ØØ'ð	 *ó ˆHð ×%Ñ%Ô'ô ,3×+GÑ+GÓ+I×+]Ñ+]ØØØ)Ü'¨´Ô5‘6¸5Ø#ØØØØ+Øð ,^ó ,
Ð!ð 	"×?Ñ?À×@PÑ@PÔQØ(Ð(ùóA	øôZ ×$Ñ$ò 	RØ #§¡× 8Ñ 8ˆJÜ¨:¸s¿|¹|×?PÑ?PÔQÐQûÜ×%Ñ%ò 	SÜ¨3Ð8QÔRÐRð	Sús   Ë"V#Ô/V) Ö)XÖ<7W3×3$X)r"   N)NNNN)Ú__name__Ú
__module__Ú__qualname__rE   r5   Úlistr   ro   rq   rr   ÚLiteLLMLoggingObjectr^   r   r   ry   rp   r   rd   r   r   r¸   Ú__classcell__)rG   s   @r>   rB   rB   R   sz  ø„ õð  ØØ*.Ø!Ø!&Ø"Ø(,ñ'F"àðF"ð ðF"ð ð	F"ð
 &ðF"ð ˜Ÿ™Ñ&¨Ñ-ðF"ð *ðF"ð ðF"ð ðF"ð !ðF"ð ! 4Ñ'ðF"ð  ð!F"ð" ˜$‘;ð#F"ð$ �t‘ð%F"ð&  ™:ð'F"ð( 
ó)F"ðj ØØ*.Ø"Ø&+ñ#[$àð[$ð ð[$ð ð	[$ð
 &ð[$ð ˜Ÿ™Ñ&¨Ñ-ð[$ð *ð[$ð ð[$ð ð[$ð !ð[$ð ð[$ð ! 4Ñ'ð[$ð  �t‘ð![$ð"  $ð#[$ð$ 
Ð,Ñ	,ó%[$ðT Ø%)Ø8<Ø"ñ![)àð[)ð ð[)ð ˜‘*ð	[)ð
 !ð[)ð &ð[)ð *ð[)ð ð[)ð ð[)ð ˜Ÿ™Ñ&¨Ñ-ð[)ð ð[)ð ˜d‘{ð[)ð ! ;Ñ.°Ñ5ð[)ð  �t‘÷![)r@   rB   )FFN),rY   Útypingr   r   rq   r7   Ú&litellm.anthropic_beta_headers_managerr   Ú*litellm.litellm_core_utils.litellm_loggingr   r½   Ú&litellm.llms.custom_httpx.http_handlerr   r   r	   r
   Úlitellm.rust_bridger   r£   Ú$litellm.rust_bridge.chat_completionsr   Úlitellm.types.utilsr   Úlitellm.utilsr   Úbase_aws_llmr   r   Úcommon_utilsr   r   Úinvoke_handlerr   r   r   r5   r^   r¼   ry   rp   ÚtupleÚHeadersr?   rB   © r@   r>   ú<module>rÍ      så   ðÛ ß ã ã õõ W÷ó õ QÝ NÝ -Ý -ç 2ß Aß RÑ Rð #ØØ$(ñ4/Ø˜$Ñð4/àð4/ð ð4/ð ð	4/ð
 ð4/ð ð4/ð &ð4/ð �d‰{ð4/ð ð4/ð ˜T‘zð4/ð ˆ3�—‘ÐÑó4/ônD)˜õ D)r@   