
     `i+>                       U d dl mZ d dl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/m0Z0m1Z1  ej2        e3          Z4de5d<   dZ6 e
deej7        ej8        f                   Z9 e
dee e         e!e         f                   Z:d%dZ;d&dZ< G d d e&e9e:f                   Z= G d! d"e=ej7        e e         f         e'          Z> G d# d$e=ej8        e!e         f         e(          Z?dS )'    )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logging.Loggerlogzbedrock-2023-05-31_HttpxClientT)bound_DefaultStreamTinput_optionsr   returnc                :   t          | d          }t          |j                  r~|j                            dt                     t          |j                  rJ|j                            d          }|r.|j                            d|                    d                     |j	        dv r|j
        dk    rt          |j                  st          d	          |j                            d
d           }t          j                            t!          |          d          }|j                            dd          }|rd| d|_	        nd| d|_	        |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   )r)   optionsbetasr4   r7   s        q/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/anthropic/lib/bedrock/_client.py_prepare_optionsrJ   &   s   T222Gw !! Q$$%8/JJJGO$$ 	QO''(899E Q!,,-=u{{3?O?OPPP{PPPU\UcgmUmUmw()) 	_]^^^!%%gt44""3u::C"88"&&x77 	3GEGGGGKK2E222GK{455 NLMMM{111MNNNN    rE   c                     t           j                            d          } | 8	 ddl}|                                }|j        r|j        } n# t          $ r Y nw xY w| t                              d           d} | S )zi
    Infer the AWS region from the environment variables or
    from the boto3 session if available.
    
AWS_REGIONNr   z0No AWS region specified, defaulting to us-east-1	us-east-1)	osenvironr<   boto3Sessionregion_nameImportErrorr%   warning)
aws_regionrQ   sessions      rI   _infer_regionrX   F   s    
 --J	LLLmmooG" 1$0
 	 	 	D	 FGGG 
s   &A
 

AAc                  &    e Zd Zedd	            Zd
S )BaseBedrockClienterr_msgrE   bodyobjectresponsehttpx.Responser*   r   c                  |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 |j         d
k    rt          j
        |||          S t          |||          S )Ni  )r^   r\   i  i  i  i  i  i  i  i  )status_coder   BadRequestErrorAuthenticationErrorPermissionDeniedErrorNotFoundErrorConflictErrorUnprocessableEntityErrorRateLimitErrorServiceUnavailableErrorInternalServerErrorr   )selfr[   r\   r^   s       rI   _make_status_errorz$BaseBedrockClient._make_status_error^   su    3&&.wPTUUUU3&&27XTXYYYY3&&4WxVZ[[[[3&&,WxdSSSS3&&,WxdSSSS3&&7(Y]^^^^3&&-gtTTTT3&&6wX\]]]]3&&27XTXYYYYgtDDDDrK   N)r[   rE   r\   r]   r^   r_   r*   r   )__name__
__module____qualname__r	   rl    rK   rI   rZ   rZ   ]   s8        !E !E !E X!E !E !ErK   rZ   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d1 fdZed2d!            Zed3d$            Z	ed4d'            Z
dddddededdddi d(d5d0ZeZ xZS )6AnthropicBedrockr!   messagesr#   completionsr   betaNFaws_secret_key
str | Noneaws_access_keyrV   aws_profileaws_session_tokenbase_urlstr | httpx.URL | Nonetimeout'float | httpx.Timeout | None | NotGivenmax_retriesintdefault_headersMapping[str, str] | Nonedefault_queryMapping[str, object] | Nonehttp_clienthttpx.Client | None_strict_response_validationboolr*   Nonec           
        || _         || _        |t                      n|| _        || _        || _        |t          j                            d          }|d| j         d}t                      
                    t          ||||	|
||           t          |           | _        t          |           | _        t!          |           | _        d S NANTHROPIC_BEDROCK_BASE_URLzhttps://bedrock-runtime.z.amazonaws.com)versionr{   r}   r   custom_headerscustom_queryr   r   )rv   rx   rX   rV   ry   rz   rO   rP   r<   super__init__r   r   ru   r!   rs   r#   rt   rk   rv   rx   rV   ry   rz   r{   r}   r   r   r   r   r   	__class__s                rI   r   zAnthropicBedrock.__init__   s    0 -,-7-?-///Z&!2z~~&BCCHQ$/QQQH#*&#(C 	 		
 		
 		
 JJ	 &t,,rK   r    c                    t                      S Nr   rk   s    rI   _make_sse_decoderz"AnthropicBedrock._make_sse_decoder       $&&&rK   rG   r   c                     t          |          S r   rJ   rk   rG   s     rI   rJ   z!AnthropicBedrock._prepare_options   s    (((rK   requesthttpx.Requestc                (   ddl m} |                                                                } ||j        t          |j                  |j        | j        | j	        | j
        | j        pd| j        |	  	        }|j                            |           d S Nr   )get_auth_headersrN   )	r?   r>   r;   rx   rv   rz   regionprofiledata_authr   readdecoder?   rE   r>   r;   rx   rv   rz   rV   ry   updaterk   r   r   r   r;   s        rI   _prepare_requestz!AnthropicBedrock._prepare_request   s    ++++++||~~$$&&"">GK  O.."4?1k$

 

 

 	w'''''rK   rv   rx   rV   rz   r{   r}   r   r   r   set_default_headersr   set_default_query_extra_kwargs!float | Timeout | None | NotGivenint | NotGivenr   r   r   Mapping[str, Any]r   c               x   |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||} | j        d|p| j        |p| j        |p| j        |p| j        |p| 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.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)
rv   rx   rV   rz   r{   r}   r   r   r   r   rp   
ValueError_custom_headers_custom_queryr   rv   rx   rV   rz   r{   
isinstancer   r}   r   r   rk   rv   rx   rV   rz   r{   r}   r   r   r   r   r   r   r   r;   paramss                   rI   copyzAnthropicBedrock.copy   %   ( &+>+Joppp$):)Fklll&&44O4GG ,)G#$00-0FF*&Ft~ 
)@T-@)@T-@!4T_/I43I.$.w$A$ANDLLw#'/'<'<R$BR# 
 
 
 
 	
rK   )rv   rw   rx   rw   rV   rw   ry   rw   rz   rw   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r*   r   r*   r    rG   r   r*   r   r   r   r*   r   )rv   rw   rx   rw   rV   rw   rz   rw   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r   rm   rn   ro   __annotations__r   r   r   r	   r   rJ   r   r   with_options__classcell__r   s   @rI   rr   rr      s1        JJJ &*%)!%"&(,+/;D.4859+/ -2-3- 3- 3- 3- 3- 3- 3-j ' ' ' X' ) ) ) X) ( ( ( X(* &*%)!%(,+/5>+/&/488<599=+-2
 2
 2
 2
 2
 2
l LLLLLrK   rr   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d1 fdZed2d!            Zed3d$            Z	ed4d'            Z
dddddededdddi d(d5d0ZeZ xZS )6AsyncAnthropicBedrockr"   rs   r$   rt   r   ru   NFrv   rw   rx   rV   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   httpx.AsyncClient | Noner   r   r*   r   c           
        || _         || _        |t                      n|| _        || _        || _        |t          j                            d          }|d| j         d}t                      
                    t          ||||	|
||           t          |           | _        t          |           | _        t!          |           | _        d S r   )rv   rx   rX   rV   ry   rz   rO   rP   r<   r   r   r   r"   rs   r$   rt   r   ru   r   s                rI   r   zAsyncAnthropicBedrock.__init__  s    0 -,-7-?-///Z&!2z~~&BCCHQ$/QQQH#*&#(C 	 		
 		
 		
 &d+++D11dOO			rK   r    c                    t                      S r   r   r   s    rI   r   z'AsyncAnthropicBedrock._make_sse_decoderK  r   rK   rG   r   c                $   K   t          |          S r   r   r   s     rI   rJ   z&AsyncAnthropicBedrock._prepare_optionsO  s      (((rK   r   r   c                ,  K   ddl m} |                                                                } ||j        t          |j                  |j        | j        | j	        | j
        | j        pd| j        |	  	        }|j                            |           d S r   r   r   s        rI   r   z&AsyncAnthropicBedrock._prepare_requestS  s      ++++++||~~$$&&"">GK  O.."4?1k$

 

 

 	w'''''rK   r   r   r   r   r   r   r   r   c               x   |	|
t          d          ||t          d          | j        }|	i ||	}n|
|
}| j        }|i ||}n||} | j        d|p| j        |p| j        |p| j        |p| j        |p| j        t          |t                    r| j        n||t          |          r|n| j        ||d
|S r   r   r   s                   rI   r   zAsyncAnthropicBedrock.copyf  r   rK   )rv   rw   rx   rw   rV   rw   ry   rw   rz   rw   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r*   r   r   r   r   )rv   rw   rx   rw   rV   rw   rz   rw   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r   r   r   s   @rI   r   r     s1        !!!!OOO &*%)!%"&(,+/;D.485904 -2-3$ 3$ 3$ 3$ 3$ 3$ 3$j ' ' ' X' ) ) ) X) ( ( ( X(* &*%)!%(,+/5>04&/488<599=+-2
 2
 2
 2
 2
 2
l LLLLLrK   r   )r)   r   r*   r   )r*   rE   )@
__future__r   rO   loggingurllib.parserB   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$   	getLoggerrm   r%   r   r:   ClientAsyncClientr&   r(   rJ   rX   rZ   rr   r   rp   rK   rI   <module>r      s*   " " " " " " " 				      / / / / / / / / / / / / , , , , , , , ,        " " " " " " " " 2 2 2 2 2 2 2 2 2 2 ' ' ' ' ' ' ' ' ! ! ! ! ! ! # # # # # # - - - - - - - - 9 9 9 9 9 9 9 9              3 2 2 2 2 2 9 9 9 9 9 9 9 9 B B B B B B B B'g'11 1 1 1 1&uU\5CT5T/UVVV'+5kRUFV9V3WXXX   @   .#E #E #E #E #E
=/#AB #E #E #ELK K K K K(vc{)BC] K K K\K K K K K-e.?SAQ.QRTb K K K K KrK   