Ë
    uPêji  ã                   óž   — d dl Z d dlmZ d dlmZ d dlmZ d dl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 ddlmZ  G d„ de«      Zy)é    N)ÚCallable)Údeepcopy)ÚFinal)Úget_aws_dns_suffix)Ú
BaseAWSLLM)ÚAsyncHTTPHandlerÚHTTPHandler)ÚModelResponseÚ
get_secreté   )ÚAWSEventStreamDecoderé   )ÚSagemakerChatConfigc                   ó¨   — e Zd Zdefd„Z	 ddedededededz  f
d„Zdi dd	i dfded
edede	dedede
ej                  z  dz  dededeez  dz  fd„Zy)ÚSagemakerChatHandlerÚ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                   úh/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/sagemaker/chat/handler.pyÚ_load_credentialsz&SagemakerChatHandler._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Údatar   Ú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«      }ddi}|�ddi|¥} |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_urlzutf-8zContent-Typezapplication/jsonÚPOST)ÚmethodÚurlr0   ÚheadersÚAuthorization)Úbotocore.authr3   Úbotocore.awsrequestr4   r$   r   ÚgetÚjsonÚdumpsÚencodeÚadd_authr<   Úprepare)r)   r,   r/   r0   r   r   r1   r3   r4   Úsigv4Ú
dns_suffixÚapi_baser8   Úencoded_datar<   ÚrequestÚprepped_requests                    r-   Ú_prepare_requestz%SagemakerChatHandler._prepare_requestE   sC  € ð	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Ó>ˆØ!Ð#5Ð6ˆØÐ$Ø%Ð'9ÐK¸]ÐKˆGÙ#¨6°xÀlÐ\cÔdˆØ�‰�wÔàÐ%¨/¸]Ñ*Jà/<¸_Ñ/MˆG�O‰O˜OÑ,à!(§¡Ó!2ˆàÐøô7 ò 	YÜÐWÓXÐXð	Yús   ‚C ÃC1FÚmessagesÚmodel_responseÚprint_verboseÚlitellm_paramsÚtimeoutÚacompletionr<   Úclientc                 ó†  — | j                  |«      \  }}t        |«      }|j                  dd «      }ddlm}  |«       }|du rdnd|d<   t        «       j                  |||||¬«      }| j                  |||||¬«      }t        dd¬	«      }|j                  |||j                  d |
||||||||	||j                  dd
||¬«      S )Nr6   r   )ÚOpenAILikeChatHandlerTF)r/   rM   r   rP   r<   )r/   r0   r   r,   r   Ú )r/   Úis_messages_apiÚsagemaker_chat)r/   rM   rH   Úapi_keyÚcustom_prompt_dictrN   rO   Úlogging_objr   rR   rP   Ú	logger_fnrQ   Úencodingr<   Úcustom_endpointÚcustom_llm_providerÚstreaming_decoderrS   )r.   r   r%   Ú%litellm.llms.openai_like.chat.handlerrU   r   Útransform_requestrL   r   Ú
completionr;   r<   )r)   r/   rM   rN   rO   r]   r[   r   rP   rQ   rZ   r\   rR   r<   rS   r,   r   Úinference_paramsr6   rU   Úopenai_like_chat_completionsÚ_dataÚprepared_requestÚcustom_stream_decoders                           r-   rc   zSagemakerChatHandler.completionn   s  € ð$ (,×'=Ñ'=¸oÓ'NÑ$ˆ�_Ü"*¨?Ó";ÐØ(×,Ñ,¨X°tÓ<ˆåOá.CÓ.EÐ$Ø-3°t©^¡TÀÐ˜Ñ"Ü*Ó,×>Ñ>ØØØ,Ø)Øð ?ó 
ˆð #'×"7Ñ"7ØØØ+Ø#Ø+ð #8ó #
Ðô (=À2ÐW[Ô'\Ðà+×6Ñ6ØØØ%×)Ñ)ØØ1Ø)Ø'Ø#Ø,Ø#Ø)ØØØØ$×,Ñ,Ø Ø 0Ø3Øð' 7ó 
ð 	
ó    )N)Ú__name__Ú
__module__Ú__qualname__Údictr.   r'   rL   Úlistr
   r   ÚfloatÚhttpxÚTimeoutÚboolr	   r   rc   © ri   r-   r   r      sð   „ ð1,àó1,ðt &*ñ'ð ð'ð ð	'ð
 ð'ð ð'ð ˜d‘{ó'ðf 15ØØØ!ØØ8<ñ@
àð@
ð ð@
ð &ð	@
ð
  ð@
ð ð@
ð ð@
ð ˜Ÿ™Ñ&¨Ñ-ð@
ð ð@
ð ð@
ð Ð.Ñ.°Ñ5ô@
ri   r   )rA   Úcollections.abcr   Úcopyr   Útypingr   rp   Ú(litellm.litellm_core_utils.aws_partitionr   Ú!litellm.llms.bedrock.base_aws_llmr   Ú&litellm.llms.custom_httpx.http_handlerr   r	   Úlitellm.utilsr
   r   Úcommon_utilsr   Útransformationr   r   rs   ri   r-   ú<module>r}      s4   ðÛ Ý $Ý Ý ã å GÝ 8ß Pß 3å 0Ý /ô]
˜:õ ]
ri   