Ë
    A²XjMJ  ã                  óx  — 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
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& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5  ejl                  e7«      Z8de9d<   dZ: e
deejv                  ejx                  f   ¬«      Z= e
dee!e   e"e   f   ¬«      Z>d"d„Z?d#d„Z@ G d„ de)e=e>f   «      ZA G d„ deAejv                  e!e   f   e*«      ZB G d „ d!eAejx                  e"e   f   e+«      ZCy)$é    )ÚannotationsN)ÚAnyÚUnionÚMappingÚTypeVarÚSequence)ÚSelfÚoverrideé   )Ú_exceptionsé   )ÚBetaÚ	AsyncBeta)Ú	NOT_GIVENÚTimeoutÚNotGiven)Úis_dictÚis_given)Ú
model_copy)Ú__version__)ÚStreamÚAsyncStream)ÚAnthropicErrorÚAPIStatusError)ÚMiddlewareInput)ÚDEFAULT_MAX_RETRIESÚ
BaseClientÚSyncAPIClientÚAsyncAPIClientÚFinalRequestOptionsÚmerge_headers©ÚAWSEventStreamDecoder)ÚMessagesÚAsyncMessages)ÚCompletionsÚAsyncCompletionszlogging.LoggerÚlogz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(  r›t        |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Úbetasr5   r8   s        úc/var/www/html/content_generation/venv/lib/python3.12/site-packages/anthropic/lib/bedrock/_client.pyÚ_prepare_optionsrL   (   s[  € Ü˜¨TÔ2€Gäˆw× Ñ Ô!Ø×Ñ×$Ñ$Ð%8¼/ÔJä�G—O‘OÔ$Ø—O‘O×'Ñ'Ð(8Ó9ˆEÙØ×!Ñ!×,Ñ,Ð-=¸u¿{¹{È3Ó?OÔPà‡{�{ÐPÑPÐU\×UcÑUcÐgmÒUmÜ�w×(Ñ(Ô)ÜÐ]Ó^Ð^à×!Ñ!×%Ñ% g¨tÓ4ˆÜ—‘×"Ñ"¤3 u£:°CÐ"Ó8ˆØ×"Ñ"×&Ñ& x°Ó7ˆÙØ# E 7Ð*FÐGˆG�Kà# E 7¨'Ð2ˆGŒKà‡{�{×ÑÐ4Ô5ÜÐLÓMÐMà‡{�{Ð1Ò1ÜÐMÓNÐNà€Nó    c                 óò   — t         j                  j                  d«      } | €-	 ddl}|j	                  «       }|j
                  r|j
                  } | €t        j                  d«       d} | S # t        $ r Y Œ&w xY w)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_regionrS   Úsessions      rK   Ú_infer_regionrZ   H   sw   € ô
 —‘—‘ Ó-€JØÐð	Ûà—m‘m“oˆGØ×"Ò"Ø$×0Ñ0�
ð ÐÜ�‰ÐFÔGØ ˆ
àÐøô ò 	Ùð	ús   £,A* Á*	A6Á5A6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 |j                   d
k\  rt        j                  |||¬«      S t        |||¬«      S )Ni�  )ÚresponseÚbodyi‘  i“  i”  i™  i¦  i­  i÷  iô  )Ústatus_coder   ÚBadRequestErrorÚAuthenticationErrorÚPermissionDeniedErrorÚNotFoundErrorÚConflictErrorÚUnprocessableEntityErrorÚRateLimitErrorÚServiceUnavailableErrorÚInternalServerErrorr   )ÚselfÚerr_msgr_   r^   s       rK   Ú_make_status_errorz$BaseBedrockClient._make_status_error`   sT  € ð ×Ñ 3Ò&Ü×.Ñ.¨wÀÐPTÔUÐUà×Ñ 3Ò&Ü×2Ñ2°7ÀXÐTXÔYÐYà×Ñ 3Ò&Ü×4Ñ4°WÀxÐVZÔ[Ð[à×Ñ 3Ò&Ü×,Ñ,¨W¸xÈdÔSÐSà×Ñ 3Ò&Ü×,Ñ,¨W¸xÈdÔSÐSà×Ñ 3Ò&Ü×7Ñ7¸È(ÐY]Ô^Ð^à×Ñ 3Ò&Ü×-Ñ-¨gÀÈtÔTÐTà×Ñ 3Ò&Ü×6Ñ6°wÈÐX\Ô]Ð]à×Ñ 3Ò&Ü×2Ñ2°7ÀXÐTXÔYÐYÜ˜g°¸tÔDÐDrM   N)rk   rF   r_   Úobjectr^   zhttpx.ResponseÚreturnr   )Ú__name__Ú
__module__Ú__qualname__r
   rl   © rM   rK   r\   r\   _   s@   „ Øð!Eàð!Eð ð	!Eð
 !ð!Eð 
ò!Eó ñ!ErM   r\   c                  óB  ‡ — e Zd ZU ded<   ded<   ded<   dddddddeed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dededdddei dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZeZdd„Zˆ xZS )ÚAnthropicBedrockr$   Úmessagesr&   Úcompletionsr   ÚbetaNFc                óü  •— |€t         j                  j                  d«      }|d uxs |d uxs
 |d uxs |d u}|�|rt        d«      ‚|| _        || _        || _        |€
t        «       n|| _        || _	        || _
        |€t         j                  j                  d«      }|€d| j                  › d�}t        ‰| �1  t        |||	|
||||¬«	       t        | «      | _        t!        | «      | _        t%        | «      | _        y ©NÚAWS_BEARER_TOKEN_BEDROCKzzCannot specify both `api_key` and AWS credentials (`aws_access_key`, `aws_secret_key`, `aws_session_token`, `aws_profile`)ÚANTHROPIC_BEDROCK_BASE_URLzhttps://bedrock-runtime.z.amazonaws.com)	ÚversionÚbase_urlÚtimeoutÚmax_retriesÚcustom_headersÚcustom_queryÚhttp_clientÚ
middlewareÚ_strict_response_validation)rQ   rR   r=   Ú
ValueErrorÚapi_keyÚaws_secret_keyÚaws_access_keyrZ   rX   Úaws_profileÚaws_session_tokenÚsuperÚ__init__r   r   rw   r$   ru   r&   rv   ©rj   r‡   rˆ   rX   r‰   rŠ   r†   r}   r~   r   Údefault_headersÚdefault_queryr‚   rƒ   r„   Úhas_aws_credentialsÚ	__class__s                   €rK   rŒ   zAnthropicBedrock.__init__Š   s0  ø€ ð4 ˆ?Ü—j‘j—n‘nÐ%?Ó@ˆGð  $Ð&ò 'Ø TÐ)ò'à ¨Ð,ò'ð  $Ð&ð	 	ð ÐÑ#6Üð Móð ð $+ˆŒà,ˆÔà,ˆÔà-7Ð-?œ-œ/ÀZˆŒØ&ˆÔà!2ˆÔàÐÜ—z‘z—~‘~Ð&BÓCˆHØÐØ1°$·/±/Ð1BÀ.ÐQˆHä‰ÑÜØØØ#Ø*Ø&Ø#Ø!Ø(Cð 	ô 
	
ô ˜“JˆŒ	Ü  ›ˆŒÜ& tÓ,ˆÕrM   c                ó   — t        «       S ©Nr"   ©rj   s    rK   Ú_make_sse_decoderz"AnthropicBedrock._make_sse_decoderÒ   ó   € ä$Ó&Ð&rM   c                ó   — t        |«      S r“   ©rL   ©rj   rI   s     rK   rL   z!AnthropicBedrock._prepare_optionsÖ   s   € ä Ó(Ð(rM   c                ó°  — | j                   �d| j                   › �|j                  d<   y ddlm} |j	                  «       j                  «       } ||j                  t        |j                  «      |j                  | j                  | j                  | j                  | j                  xs d| j                  |¬«	      }|j                  j                  |«       y ©NzBearer ÚAuthorizationr   )Úget_auth_headersrP   )	r@   r?   r<   rˆ   r‡   rŠ   ÚregionÚprofileÚdata©r†   r<   Ú_authr�   ÚreadÚdecoder@   rF   r?   rˆ   r‡   rŠ   rX   r‰   Úupdate©rj   Úrequestr�   r    r<   s        rK   Ú_prepare_requestz!AnthropicBedrock._prepare_requestÚ   sª   € à�<‰<Ð#Ø18¸¿¹¸Ð/GˆG�O‰O˜OÑ,Øå+à�|‰|‹~×$Ñ$Ó&ˆá"Ø—>‘>Ü�G—K‘KÓ Ø—O‘OØ×.Ñ.Ø×.Ñ.Ø"×4Ñ4Ø—?‘?Ò1 kØ×$Ñ$Øô

ˆð 	�‰×Ñ˜wÕ'rM   ©r‡   rˆ   rX   rŠ   r†   r}   r~   r‚   r   rŽ   Úset_default_headersr�   Úset_default_queryrƒ   Ú_extra_kwargsc               ó2  — |
�|�t        d«      ‚|�|�t        d«      ‚| j                  }|
�t        ||
«      }n|�|}| j                  }|�i |¥|¥}n|�|} | j                  d|xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  t        |t        «      r| j                  n||t        |	«      r|	n| j                  ||t        |t        «      r| j                   n|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)r‡   rˆ   rX   rŠ   r†   r}   r~   r‚   r   rŽ   r�   rƒ   rr   ©r…   Ú_custom_headersr!   Ú_custom_queryr‘   r‡   rˆ   rX   rŠ   r†   r}   Ú
isinstancer   r~   r   r   Ú_middleware©rj   r‡   rˆ   rX   rŠ   r†   r}   r~   r‚   r   rŽ   rª   r�   r«   rƒ   r¬   r<   Úparamss                     rK   ÚcopyzAnthropicBedrock.copyñ   ó9  € ð, Ð&Ð+>Ð+JÜÐoÓpÐpàÐ$Ð):Ð)FÜÐkÓlÐlà×&Ñ&ˆØÐ&Ü# G¨_Ó=‰GØ Ð,Ø)ˆGà×#Ñ#ˆØÐ$Ø0˜Ð0 -Ð0‰FØÐ*Ø&ˆFàˆt�~‰~ð 
Ø)Ò@¨T×-@Ñ-@Ø)Ò@¨T×-@Ñ-@Ø!Ò4 T§_¡_Ø/ÒI°4×3IÑ3IØÒ+˜tŸ|™|ØÒ. §¡Ü$.¨w¼Ô$A�D—L’LÀwØ#Ü'/°Ô'<™À$×BRÑBRØ#Ø Ü+5°jÄ(Ô+K�t×'Ò'ÐQ[ñ
ð ñ
ð 	
rM   c                óB   — | j                  g | j                  ¢|¢¬«      S ©zþA new client with the given middleware appended after this client's middleware.

        Convenience for applying extra middleware to a single request:

        ```py
        client.with_middleware(my_middleware).messages.create(...)
        ```
        )rƒ   ©r¶   r³   ©rj   rƒ   s     rK   Úwith_middlewarez AnthropicBedrock.with_middleware-  ó&   € ð �y‰yÐ$D d×&6Ñ&6Ð$D¸Ð$DˆyÓEÐErM   )r‡   ú
str | Nonerˆ   r¾   rX   r¾   r‰   r¾   rŠ   r¾   r†   r¾   r}   ústr | httpx.URL | Noner~   ú'float | httpx.Timeout | None | NotGivenr   ÚintrŽ   úMapping[str, str] | Noner�   úMapping[str, object] | Noner‚   úhttpx.Client | Nonerƒ   ú Sequence[MiddlewareInput] | Noner„   Úboolrn   ÚNone©rn   r#   ©rI   r    rn   r    ©r§   zhttpx.Requestrn   rÇ   ) r‡   r¾   rˆ   r¾   rX   r¾   rŠ   r¾   r†   r¾   r}   r¿   r~   ú!float | Timeout | None | NotGivenr‚   rÄ   r   úint | NotGivenrŽ   rÂ   rª   rÂ   r�   rÃ   r«   rÃ   rƒ   ú+Sequence[MiddlewareInput] | None | NotGivenr¬   úMapping[str, Any]rn   r	   ©rƒ   r   rn   r	   ©ro   rp   rq   Ú__annotations__r   r   rŒ   r
   r•   rL   r¨   r¶   Úwith_optionsr¼   Ú__classcell__©r‘   s   @rK   rt   rt   …   s  ø… ØÓØÓØ
ƒJð &*Ø%)Ø!%Ø"&Ø(,Ø"Ø+/Ø;DØ.Ø48Ø59à+/Ø7;ð -2ð1F-à"ðF-ð #ðF-ð ð	F-ð
  ðF-ð &ðF-ð ðF-ð )ðF-ð 9ðF-ð ðF-ð 2ðF-ð 3ðF-ð )ðF-ð 5ðF-ð0 &*ð1F-ð2 
õ3F-ðP ò'ó ð'ð ò)ó ð)ð ò(ó ð(ð2 &*Ø%)Ø!%Ø(,Ø"Ø+/Ø5>Ø+/Ø&/Ø48Ø8<Ø59Ø9=ØBKØ+-ñ#6
ð #ð6
ð #ð	6
ð
 ð6
ð &ð6
ð ð6
ð )ð6
ð 3ð6
ð )ð6
ð $ð6
ð 2ð6
ð 6ð6
ð 3ð6
ð 7ð6
ð  @ð!6
ð" )ð#6
ð$ 
ó%6
ðt €L÷	FrM   rt   c                  óB  ‡ — e Zd ZU ded<   ded<   ded<   dddddddeed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dededdddei dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZeZdd„Zˆ xZS )ÚAsyncAnthropicBedrockr%   ru   r'   rv   r   rw   NFc                óü  •— |€t         j                  j                  d«      }|d uxs |d uxs
 |d uxs |d u}|�|rt        d«      ‚|| _        || _        || _        |€
t        «       n|| _        || _	        || _
        |€t         j                  j                  d«      }|€d| j                  › d�}t        ‰| �1  t        |||	|
||||¬«	       t        | «      | _        t!        | «      | _        t%        | «      | _        y ry   )rQ   rR   r=   r…   r†   r‡   rˆ   rZ   rX   r‰   rŠ   r‹   rŒ   r   r%   ru   r'   rv   r   rw   r�   s                   €rK   rŒ   zAsyncAnthropicBedrock.__init__>  s1  ø€ ð4 ˆ?Ü—j‘j—n‘nÐ%?Ó@ˆGð  $Ð&ò 'Ø TÐ)ò'à ¨Ð,ò'ð  $Ð&ð	 	ð ÐÑ#6Üð Móð ð $+ˆŒà,ˆÔà,ˆÔà-7Ð-?œ-œ/ÀZˆŒØ&ˆÔà!2ˆÔàÐÜ—z‘z—~‘~Ð&BÓCˆHØÐØ1°$·/±/Ð1BÀ.ÐQˆHä‰ÑÜØØØ#Ø*Ø&Ø#Ø!Ø(Cð 	ô 
	
ô & dÓ+ˆŒÜ+¨DÓ1ˆÔÜ˜d“Oˆ�	rM   c                ó   — t        «       S r“   r"   r”   s    rK   r•   z'AsyncAnthropicBedrock._make_sse_decoder†  r–   rM   c              ƒ  ó    K  — t        |«      S ­wr“   r˜   r™   s     rK   rL   z&AsyncAnthropicBedrock._prepare_optionsŠ  s   è ø€ ä Ó(Ð(ùs   ‚c              ƒ  ó¸  K  — | j                   �d| j                   › �|j                  d<   y 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        rK   r¨   z&AsyncAnthropicBedrock._prepare_requestŽ  s®   è ø€ à�<‰<Ð#Ø18¸¿¹¸Ð/GˆG�O‰O˜OÑ,Øå+à�|‰|‹~×$Ñ$Ó&ˆá"Ø—>‘>Ü�G—K‘KÓ Ø—O‘OØ×.Ñ.Ø×.Ñ.Ø"×4Ñ4Ø—?‘?Ò1 kØ×$Ñ$Øô

ˆð 	�‰×Ñ˜wÕ'ùs   ‚CCr©   c               ó2  — |
�|�t        d«      ‚|�|�t        d«      ‚| j                  }|
�t        ||
«      }n|�|}| j                  }|�i |¥|¥}n|�|} | j                  d|xs | j
                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  |xs | j                  t        |t        «      r| j                  n||t        |	«      r|	n| j                  ||t        |t        «      r| j                   n|dœ|¤ŽS r®   r¯   r´   s                     rK   r¶   zAsyncAnthropicBedrock.copy¥  r·   rM   c                óB   — | j                  g | j                  ¢|¢¬«      S r¹   rº   r»   s     rK   r¼   z%AsyncAnthropicBedrock.with_middlewareá  r½   rM   )r‡   r¾   rˆ   r¾   rX   r¾   r‰   r¾   rŠ   r¾   r†   r¾   r}   r¿   r~   rÀ   r   rÁ   rŽ   rÂ   r�   rÃ   r‚   úhttpx.AsyncClient | Nonerƒ   rÅ   r„   rÆ   rn   rÇ   rÈ   rÉ   rÊ   ) r‡   r¾   rˆ   r¾   rX   r¾   rŠ   r¾   r†   r¾   r}   r¿   r~   rË   r‚   rÝ   r   rÌ   rŽ   rÂ   rª   rÂ   r�   rÃ   r«   rÃ   rƒ   rÍ   r¬   rÎ   rn   r	   rÏ   rÐ   rÔ   s   @rK   rÖ   rÖ   9  s  ø… ØÓØ!Ó!Ø
ƒOð &*Ø%)Ø!%Ø"&Ø(,Ø"Ø+/Ø;DØ.Ø48Ø59à04Ø7;ð -2ð1F$à"ðF$ð #ðF$ð ð	F$ð
  ðF$ð &ðF$ð ðF$ð )ðF$ð 9ðF$ð ðF$ð 2ðF$ð 3ðF$ð .ðF$ð 5ðF$ð0 &*ð1F$ð2 
õ3F$ðP ò'ó ð'ð ò)ó ð)ð ò(ó ð(ð2 &*Ø%)Ø!%Ø(,Ø"Ø+/Ø5>Ø04Ø&/Ø48Ø8<Ø59Ø9=ØBKØ+-ñ#6
ð #ð6
ð #ð	6
ð
 ð6
ð &ð6
ð ð6
ð )ð6
ð 3ð6
ð .ð6
ð $ð6
ð 2ð6
ð 6ð6
ð 3ð6
ð 7ð6
ð  @ð!6
ð" )ð#6
ð$ 
ó%6
ðt €L÷	FrM   rÖ   )rH   r    rn   r    )rn   rF   )DÚ
__future__r   rQ   ÚloggingÚurllib.parserC   Útypingr   r   r   r   r   Útyping_extensionsr	   r
   ÚhttpxÚ r   Ú_betar   r   Ú_typesr   r   r   Ú_utilsr   r   Ú_compatr   Ú_versionr   Ú
_streamingr   r   r   r   r³   r   Ú_base_clientr   r   r   r   r    r!   Ú_stream_decoderr#   Úresources.messagesr$   r%   Úresources.completionsr&   r'   Ú	getLoggerro   r(   rÑ   r;   ÚClientÚAsyncClientr)   r+   rL   rZ   r\   rt   rÖ   rr   rM   rK   Ú<module>rò      s   ðÞ "ã 	Û Û ß 9Õ 9ß ,ã å ß "ß 2Ñ 2ß 'Ý !Ý #ß -ß 9Ý *÷÷ õ 3ß 9ß Bà'�g×'Ñ'¨Ó1€€^Ó 1à&€á˜¨u°U·\±\À5×CTÑCTÐ5TÑ/UÔV€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÔX€óó@ô.#E˜
 =°/Ð#AÑBô #EôLqFÐ(¨¯©°v¸c±{Ð)BÑCÀ]ô qFôhqFÐ-¨e×.?Ñ.?ÀÈSÑAQÐ.QÑRÐTbõ qFrM   