
    gr;                    $   d dl mZ d dlZd dlZd dlmZmZmZm	Z	 d dl
mZmZ d dlZddlmZ ddlmZmZ dd	lmZmZmZ dd
lmZ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&m'Z'm(Z( ddl)m*Z* ddl+m,Z,m-Z- ddl.m/Z/m0Z0 dZ1 e	deejd                  ejf                  f         Z4 e	deee   e e   f         Z5ddZ6 G d de%e4e5f         Z7 G d de7ejd                  ee   f   e&      Z8 G d de7ejf                  e e   f   e'      Z9y)    )annotationsN)AnyUnionMappingTypeVar)Selfoverride   )_exceptions   )Beta	AsyncBeta)	NOT_GIVENTimeoutNotGiven)is_dictis_given)
model_copy)__version__)StreamAsyncStream)AnthropicErrorAPIStatusError)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClientFinalRequestOptionsAWSEventStreamDecoder)MessagesAsyncMessages)CompletionsAsyncCompletionszbedrock-2023-05-31_HttpxClientT)bound_DefaultStreamTc                4   t        | d      }t        |j                        r}|j                  j                  dt               t        |j                        rH|j                  j                  d      }|r+|j                  j                  d|j                  d             |j                  dv r|j                  dk(  rt        |j                        st        d	      |j                  j                  d
d       }t        j                  j                  t!        |      d      }|j                  j                  dd      }|rd| d|_	        nd| d|_	        |j                  j#                  d      rt%        d      |j                  dk(  rt%        d      |S )NT)deepanthropic_versionzanthropic-betaanthropic_beta,>   /v1/complete/v1/messages/v1/messages?beta=truepostz<Expected dictionary json_data for post /completions endpointmodel:)safestreamFz/model/z/invoke-with-response-streamz/invokez/v1/messages/batchesz-The Batch API is not supported in Bedrock yetz/v1/messages/count_tokensz.Token counting is not supported in Bedrock yet)r   r   	json_data
setdefaultDEFAULT_VERSIONr   headersgetspliturlmethodRuntimeErrorpopurllibparsequotestr
startswithr   )input_optionsoptionsbetasr1   r4   s        R/var/www/openai/venv/lib/python3.12/site-packages/anthropic/lib/bedrock/_client.py_prepare_optionsrH   #   s[   T2Gw  !$$%8/JGOO$OO''(89E!!,,-=u{{3?OP{{PPU\UcUcgmUmw(()]^^!!%%gt4""3u:C"8""&&x7#E7*FGGK#E7'2GK{{45LMM{{11MNNN    c                  .    e Zd Ze	 	 	 	 	 	 	 	 dd       Zy)BaseBedrockClientc                  |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j
                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   dk(  rt        j                  |||      S |j                   d	k\  rt        j                  |||      S t        |||      S )
Ni  )responsebodyi  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorInternalServerErrorr   )selferr_msgrN   rM   s       rG   _make_status_errorz$BaseBedrockClient._make_status_errorD   s0    3&..wPTUU3&227XTXYY3&44WxVZ[[3&,,WxdSS3&,,WxdSS3&77(Y]^^3&--gtTT3&227XTXYYgtDDrI   N)rY   rB   rN   objectrM   zhttpx.Responsereturnr   )__name__
__module____qualname__r	   rZ    rI   rG   rK   rK   C   s@    EE 	E
 !E 
E ErI   rK   c                  "    e Zd ZU ded<   ded<   ded<   ddddddeeddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AnthropicBedrockr!   messagesr#   completionsr   betaNFc           
        || _         || _        |#t        j                  j	                  d      xs d}|| _        || _        || _        |t        j                  j	                  d      }|d| j
                   d}t        | %  t        ||||	|
||       t        |       | _        t        |       | _        t        |       | _        y N
AWS_REGION	us-east-1ANTHROPIC_BEDROCK_BASE_URLzhttps://bedrock-runtime.z.amazonaws.com)versionbase_urltimeoutmax_retriescustom_headerscustom_queryhttp_client_strict_response_validation)aws_secret_keyaws_access_keyosenvironr9   
aws_regionaws_profileaws_session_tokensuper__init__r   r   re   r!   rc   r#   rd   rX   rs   rt   rw   rx   ry   rl   rm   rn   default_headersdefault_queryrq   rr   	__class__s                rG   r{   zAnthropicBedrock.__init__k   s    0 -,5DJ$&!2zz~~&BCH1$//1B.QH#*&#(C 	 		
 J	 &t,rI   c                    t               S Nr   rX   s    rG   _make_sse_decoderz"AnthropicBedrock._make_sse_decoder       $&&rI   c                    t        |      S r   rH   rX   rE   s     rG   rH   z!AnthropicBedrock._prepare_options   s    ((rI   c                ^   ddl m} |j                         j                         } ||j                  t        |j                        |j                  | j                  | j                  | j                  | j                  xs d| j                  |	      }|j                  j                  |       y Nr   )get_auth_headersri   )	r<   r;   r8   rt   rs   ry   regionprofiledata_authr   readdecoder<   rB   r;   r8   rt   rs   ry   rw   rx   updaterX   requestr   r   r8   s        rG   _prepare_requestz!AnthropicBedrock._prepare_request   s    +||~$$&">>GKK OO...."44??1k$$

 	w'rI   rs   rt   rw   ry   rl   rm   rq   rn   r}   set_default_headersr~   set_default_query_extra_kwargsc                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||} | j                  d|xs | j                  |xs | j
                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)
rs   rt   rw   ry   rl   rm   rq   rn   r}   r~   r`   
ValueError_custom_headers_custom_queryr   rs   rt   rw   ry   rl   
isinstancer   rm   r   rn   rX   rs   rt   rw   ry   rl   rm   rq   rn   r}   r   r~   r   r   r8   paramss                   rG   copyzAnthropicBedrock.copy      ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&Ft~~ 
)@T-@-@)@T-@-@!4T__/I43I3I.$.w$ADLLw#'/'<$BRBR# 
 
 	
rI   )rs   
str | Nonert   r   rw   r   rx   r   ry   r   rl   str | httpx.URL | Nonerm   'float | httpx.Timeout | None | NotGivenrn   intr}   Mapping[str, str] | Noner~   Mapping[str, object] | Nonerq   httpx.Client | Nonerr   boolr\   Noner\   r    rE   r   r\   r   r   zhttpx.Requestr\   r   )rs   r   rt   r   rw   r   ry   r   rl   r   rm   !float | Timeout | None | NotGivenrq   r   rn   int | NotGivenr}   r   r   r   r~   r   r   r   r   Mapping[str, Any]r\   r   r]   r^   r_   __annotations__r   r   r{   r	   r   rH   r   r   with_options__classcell__r   s   @rG   rb   rb   f   s   
J &*%)!%"&(,+/;D.4859+/ -2-5-"5- #5- 	5-
  5- &5- )5- 95- 5- 25- 35- )5-, &*-5-. 
/5-n ' ' ) ) ( (* &*%)!%(,+/5>+/&/488<599=+-2
 #2
 #	2

 2
 &2
 )2
 32
 )2
 $2
 22
 62
 32
 72
 )2
  
!2
l LrI   rb   c                  "    e Zd ZU ded<   ded<   ded<   ddddddeeddddf	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zedd
       Zedd       Z	edd       Z
dddddededdddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AsyncAnthropicBedrockr"   rc   r$   rd   r   re   NFc           
        || _         || _        |#t        j                  j	                  d      xs d}|| _        || _        || _        |t        j                  j	                  d      }|d| j
                   d}t        | %  t        ||||	|
||       t        |       | _        t        |       | _        t        |       | _        y rg   )rs   rt   ru   rv   r9   rw   rx   ry   rz   r{   r   r"   rc   r$   rd   r   re   r|   s                rG   r{   zAsyncAnthropicBedrock.__init__   s    0 -,5DJ$&!2zz~~&BCH1$//1B.QH#*&#(C 	 		
 &d++D1dO	rI   c                    t               S r   r   r   s    rG   r   z'AsyncAnthropicBedrock._make_sse_decoder2  r   rI   c                    K   t        |      S wr   r   r   s     rG   rH   z&AsyncAnthropicBedrock._prepare_options6  s     ((s   c                f  K   ddl m} |j                         j                         } ||j                  t        |j                        |j                  | j                  | j                  | j                  | j                  xs d| j                  |	      }|j                  j                  |       y wr   r   r   s        rG   r   z&AsyncAnthropicBedrock._prepare_request:  s     +||~$$&">>GKK OO...."44??1k$$

 	w's   B/B1r   c                  |	|
t        d      ||t        d      | j                  }|	i ||	}n|
|
}| j                  }|i ||}n||} | j                  d|xs | j                  |xs | j
                  |xs | j                  |xs | j                  |xs | j                  t        |t              r| j                  n||t        |      r|n| j                  ||d
|S r   r   r   s                   rG   r   zAsyncAnthropicBedrock.copyM  r   rI   )rs   r   rt   r   rw   r   rx   r   ry   r   rl   r   rm   r   rn   r   r}   r   r~   r   rq   httpx.AsyncClient | Nonerr   r   r\   r   r   r   r   )rs   r   rt   r   rw   r   ry   r   rl   r   rm   r   rq   r   rn   r   r}   r   r   r   r~   r   r   r   r   r   r\   r   r   r   s   @rG   r   r      s   !!
O &*%)!%"&(,+/;D.485904 -2-5$"5$ #5$ 	5$
  5$ &5$ )5$ 95$ 5$ 25$ 35$ .5$, &*-5$. 
/5$n ' ' ) ) ( (* &*%)!%(,+/5>04&/488<599=+-2
 #2
 #	2

 2
 &2
 )2
 32
 .2
 $2
 22
 62
 32
 72
 )2
  
!2
l LrI   r   )rD   r   r\   r   ):
__future__r   ru   urllib.parser?   typingr   r   r   r   typing_extensionsr   r	   httpx r   _betar   r   _typesr   r   r   _utilsr   r   _compatr   _versionr   
_streamingr   r   r   r   _base_clientr   r   r   r   r   _stream_decoderr    resources.messagesr!   r"   resources.completionsr#   r$   r7   ClientAsyncClientr%   r'   rH   rK   rb   r   r`   rI   rG   <module>r      s    " 	  / / ,   " 2 2 ' ! # - 9  3 9 B&uU\\5CTCT5T/UV+5kRUFV9V3WX@ E
=/#AB  EFM(vc{)BC] M`M-e.?.?SAQ.QRTb MrI   