Ë
    A²XjSH  ã                  óD  — d dl mZ d dlZd dlmZ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 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/m0Z0 ddl1m2Z2m3Z3 erd dl4m5Z6 dZ7 edeejp                  ejr                  f   ¬«      Z: edee%e   e&e   f   ¬«      Z; G d„ de-e:e;f   «      Z< G d„ de<ejp                  e%e   f   e.«      Z= G d„ de<ejr                  e&e   f   e/«      Z>d d„Z?y)!é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚUnionÚMappingÚTypeVarÚSequence)ÚSelfÚoverrideé   )Ú_exceptionsé   )Ú	load_authÚrefresh_auth)ÚBetaÚ	AsyncBeta)Ú	NOT_GIVENÚNotGiven)Úis_dictÚasyncifyÚis_given)Ú
model_copyÚtyped_cached_property)ÚFinalRequestOptions)Ú__version__)ÚStreamÚAsyncStream)ÚAnthropicErrorÚAPIStatusError)ÚMiddlewareInput)ÚDEFAULT_MAX_RETRIESÚ
BaseClientÚSyncAPIClientÚAsyncAPIClientÚmerge_headers)ÚMessagesÚAsyncMessages)ÚCredentialszvertex-2023-10-16Ú_HttpxClientT)ÚboundÚ_DefaultStreamTc                  óR   — e Zd Zedd„«       Zedd„«       Ze	 	 	 	 	 	 	 	 dd„«       Zy)ÚBaseVertexClientc                ó   — t        d«      ‚)Nzregion not set)ÚRuntimeError)Úselfs    úb/var/www/html/content_generation/venv/lib/python3.12/site-packages/anthropic/lib/vertex/_client.pyÚregionzBaseVertexClient.region(   s   € äÐ+Ó,Ð,ó    c                óJ   — t         j                  j                  d«      }|r|S y )NÚANTHROPIC_VERTEX_PROJECT_ID)ÚosÚenvironÚget©r0   Ú
project_ids     r1   r:   zBaseVertexClient.project_id,   s!   € ä—Z‘Z—^‘^Ð$AÓBˆ
ÙØÐàr3   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 |j                   dk\  rt        j                  |||¬«      S t        |||¬«      S )Ni�  )ÚresponseÚbodyi‘  i“  i”  i™  i¦  i­  i÷  iø  iô  )Ústatus_coder   ÚBadRequestErrorÚAuthenticationErrorÚPermissionDeniedErrorÚNotFoundErrorÚConflictErrorÚUnprocessableEntityErrorÚRateLimitErrorÚServiceUnavailableErrorÚDeadlineExceededErrorÚInternalServerErrorr   )r0   Úerr_msgr=   r<   s       r1   Ú_make_status_errorz#BaseVertexClient._make_status_error4   sx  € ð ×Ñ 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Ò&Ü×4Ñ4°WÀxÐVZÔ[Ð[à×Ñ 3Ò&Ü×2Ñ2°7ÀXÐTXÔYÐYÜ˜g°¸tÔDÐDr3   N©ÚreturnÚstr)rL   ú
str | None)rI   rM   r=   Úobjectr<   zhttpx.ResponserL   r   )Ú__name__Ú
__module__Ú__qualname__r   r2   r:   r   rJ   © r3   r1   r-   r-   '   sh   „ Øò-ó ð-ð òó ðð ð$Eàð$Eð ð	$Eð
 !ð$Eð 
ò$Eó ñ$Er3   r-   c                  ó  ‡ — e Zd ZU ded<   ded<   eedddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zedd	„«       Zedd
„«       Z	dd„Z
eedddededdddei dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZeZdd„Zˆ xZS )ÚAnthropicVertexr&   Úmessagesr   ÚbetaNF©r2   r:   Úaccess_tokenÚcredentialsÚbase_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ
middlewareÚ_strict_response_validationc               óØ  •— t        |«      s$t        j                  j                  dt        «      }t        |«      st        d«      ‚|€?t        j                  j                  d«      }|€|dk(  rd}n|dk(  rd}n|dk(  rd	}nd
|› d�}t        ‰| �  t        |||||	|
||¬«	       t        |«      r|| _	        || _
        || _        || _        t        | «      | _        t        | «      | _        y ©NÚCLOUD_ML_REGIONzŽNo region was given. The client should be instantiated with the `region` argument or the `CLOUD_ML_REGION` environment variable should be set.ÚANTHROPIC_VERTEX_BASE_URLÚglobalz$https://aiplatform.googleapis.com/v1Úusz+https://aiplatform.us.rep.googleapis.com/v1Úeuz+https://aiplatform.eu.rep.googleapis.com/v1zhttps://z-aiplatform.googleapis.com/v1)	Úversionr[   r\   r]   Úcustom_headersÚcustom_queryr`   ra   rb   )r   r6   r7   r8   r   Ú
ValueErrorÚsuperÚ__init__r   r:   r2   rY   rZ   r&   rV   r   rW   ©r0   r2   r:   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   Ú	__class__s                €r1   ro   zAnthropicVertex.__init__`   sý   ø€ ô" ˜ÔÜ—Z‘Z—^‘^Ð$5´yÓAˆFÜ˜ÔÜð aóð ð ÐÜ—z‘z—~‘~Ð&AÓBˆHØÐØ˜XÒ%ØE‘HØ˜t’^ØL‘HØ˜t’^ØL‘Hà!)¨&¨Ð1NÐO�Hä‰ÑÜØØØ#Ø*Ø&Ø#Ø!Ø(Cð 	ô 
	
ô �JÔØ(ˆDŒOàˆŒØ(ˆÔØ&ˆÔä  ›ˆŒÜ˜“Jˆ�	r3   c                óF   — t        || j                  | j                  ¬«      S ©N)r:   r2   ©Ú_prepare_optionsr:   r2   ©r0   Úoptionss     r1   ru   z AnthropicVertex._prepare_optionsš   s   € ä °D·O±OÈDÏKÉKÔXÐXr3   c                ó|   — |j                   j                  d«      ry d| j                  «       › �|j                   d<   y ©NÚAuthorizationzBearer ©Úheadersr8   Ú_ensure_access_token©r0   Úrequests     r1   Ú_prepare_requestz AnthropicVertex._prepare_requestž   s6   € à�?‰?×Ñ˜Ô/àà-4°T×5NÑ5NÓ5PÐ4QÐ+Rˆ�‰˜Ò(r3   c                óè  — | j                   �| j                   S | j                  s1t        | j                  ¬«      \  | _        }| j                  s|| _        | j                  j                  s| j                  j
                  st        | j                  «       | j                  j
                  st        d«      ‚t        | j                  j
                  t        «      sJ ‚| j                  j
                  S ©N)r:   z0Could not resolve API token from the environment)
rY   rZ   r   r:   ÚexpiredÚtokenr   r/   Ú
isinstancerM   r9   s     r1   r}   z$AnthropicVertex._ensure_access_token¦   s»   € Ø×ÑÐ(Ø×$Ñ$Ð$à×ÒÜ+4ÀÇÁÔ+PÑ(ˆDÔ˜jØ—?’?Ø",�”à×Ñ×#Ò#¨4×+;Ñ+;×+AÒ+AÜ˜×)Ñ)Ô*à×Ñ×%Ò%ÜÐQÓRÐRä˜$×*Ñ*×0Ñ0´#Ô6Ð6Ð6Ø×Ñ×%Ñ%Ð%r3   ©r2   r:   rY   rZ   r[   r\   r`   r]   r^   Úset_default_headersr_   Úset_default_queryra   Ú_extra_kwargsc               óh  — |	�|
�t        d«      ‚|�|�t        d«      ‚| j                  }|	�t        ||	«      }n|
�|
}| j                  }|�i |¥|¥}n|�|}|xs | j                  } | j
                  dt        |«      r|n| j                  t        |«      r|n| j                  xs t        |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)r2   r:   rY   rZ   r[   r\   r`   r]   r^   r_   ra   rS   ©rm   Ú_custom_headersr%   Ú_custom_queryÚ_clientrq   r   r2   r:   r   rY   rZ   r[   r…   r   r\   r]   Ú_middleware©r0   r2   r:   rY   rZ   r[   r\   r`   r]   r^   r‡   r_   rˆ   ra   r‰   r|   Úparamss                    r1   ÚcopyzAnthropicVertex.copy¸   óG  € ð* Ð&Ð+>Ð+JÜÐoÓpÐpàÐ$Ð):Ð)FÜÐkÓlÐlà×&Ñ&ˆØÐ&Ü# G¨_Ó=‰GØ Ð,Ø)ˆGà×#Ñ#ˆØÐ$Ø0˜Ð0 -Ð0‰FØÐ*Ø&ˆFà!Ò1 T§\¡\ˆàˆt�~‰~ð 
Ü% fÔ-‘6°4·;±;Ü%-¨jÔ%9‘z¸t¿¹Ò?[ÔR[Ø%Ò:¨×):Ñ):Ø#Ò7 t×'7Ñ'7ØÒ. §¡Ü$.¨w¼Ô$A�D—L’LÀwØ#Ü'/°Ô'<™À$×BRÑBRØ#Ø Ü+5°jÄ(Ô+K�t×'Ò'ÐQ[ñ
ð ñ
ð 	
r3   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(...)
        ```
        )ra   ©r“   r�   ©r0   ra   s     r1   Úwith_middlewarezAnthropicVertex.with_middlewareô   ó&   € ð �y‰yÐ$D d×&6Ñ&6Ð$D¸Ð$DˆyÓEÐEr3   )r2   ústr | NotGivenr:   r›   rY   rN   rZ   úGoogleCredentials | Noner[   ústr | httpx.URL | Noner\   ú'float | httpx.Timeout | None | NotGivenr]   Úintr^   úMapping[str, str] | Noner_   úMapping[str, object] | Noner`   úhttpx.Client | Nonera   ú Sequence[MiddlewareInput] | Nonerb   ÚboolrL   ÚNone©rw   r   rL   r   ©r   zhttpx.RequestrL   r¥   rK   )r2   r›   r:   r›   rY   rN   rZ   rœ   r[   r�   r\   rž   r`   r¢   r]   úint | NotGivenr^   r    r‡   r    r_   r¡   rˆ   r¡   ra   ú+Sequence[MiddlewareInput] | None | NotGivenr‰   úMapping[str, Any]rL   r
   ©ra   r    rL   r
   ©rP   rQ   rR   Ú__annotations__r   r!   ro   r   ru   r€   r}   r“   Úwith_optionsr™   Ú__classcell__©rq   s   @r1   rU   rU   \   sÃ  ø… ØÓØ
ƒJð
 "+Ø%.Ø#'Ø04Ø+/Ø;DØ.Ø48Ø59à+/Ø7;Ø,1ñ8ð ð8ð #ð	8ð
 !ð8ð .ð8ð )ð8ð 9ð8ð ð8ð 2ð8ð 3ð8ð )ð8ð 5ð8ð &*ð8ð  
õ!8ðt òYó ðYð òSó ðSó&ð* "+Ø%.Ø#'Ø04Ø+/Ø;DØ+/Ø&/Ø48Ø8<Ø59Ø9=ØBKØ+-ñ!6
ð ð6
ð #ð	6
ð
 !ð6
ð .ð6
ð )ð6
ð 9ð6
ð )ð6
ð $ð6
ð 2ð6
ð 6ð6
ð 3ð6
ð 7ð6
ð @ð6
ð  )ð!6
ð" 
ó#6
ðt €L÷	Fr3   rU   c                  ó  ‡ — e Zd ZU ded<   ded<   eedddeeddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zedd	„«       Zedd
„«       Z	dd„Z
eedddededdddei dœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„ZeZdd„Zˆ xZS )ÚAsyncAnthropicVertexr'   rV   r   rW   NFrX   c               óØ  •— t        |«      s$t        j                  j                  dt        «      }t        |«      st        d«      ‚|€?t        j                  j                  d«      }|€|dk(  rd}n|dk(  rd}n|dk(  rd	}nd
|› d�}t        ‰| �  t        |||||	|
||¬«	       t        |«      r|| _	        || _
        || _        || _        t        | «      | _        t        | «      | _        y rd   )r   r6   r7   r8   r   rm   rn   ro   r   r:   r2   rY   rZ   r'   rV   r   rW   rp   s                €r1   ro   zAsyncAnthropicVertex.__init__  sþ   ø€ ô" ˜ÔÜ—Z‘Z—^‘^Ð$5´yÓAˆFÜ˜ÔÜð aóð ð ÐÜ—z‘z—~‘~Ð&AÓBˆHØÐØ˜XÒ%ØE‘HØ˜t’^ØL‘HØ˜t’^ØL‘Hà!)¨&¨Ð1NÐO�Hä‰ÑÜØØØ#Ø*Ø&Ø#Ø!Ø(Cð 	ô 
	
ô �JÔØ(ˆDŒOàˆŒØ(ˆÔØ&ˆÔä% dÓ+ˆŒÜ˜d“Oˆ�	r3   c              ƒ  óN   K  — t        || j                  | j                  ¬«      S ­wrs   rt   rv   s     r1   ru   z%AsyncAnthropicVertex._prepare_options>  s   è ø€ ä °D·O±OÈDÏKÉKÔXÐXùs   ‚#%c              ƒ  ó˜   K  — |j                   j                  d«      ry d| j                  «       ƒ d {  –—† › �|j                   d<   y 7 Œ­wry   r{   r~   s     r1   r€   z%AsyncAnthropicVertex._prepare_requestB  s@   è ø€ à�?‰?×Ñ˜Ô/àà-4¸4×;TÑ;TÓ;V×5VÐ4WÐ+Xˆ�‰˜Ò(Ð5Vús   ‚1A
³A´A
c              ƒ  ó@  K  — | j                   �| j                   S | j                  sC t        t        «      | j                  ¬«      ƒ d {  –—† \  | _        }| j                  s|| _        | j                  j
                  s| j                  j                  s' t        t        «      | j                  «      ƒ d {  –—†  | j                  j                  st        d«      ‚t        | j                  j                  t        «      sJ ‚| j                  j                  S 7 ŒÏ7 Œc­wr‚   )rY   rZ   r   r   r:   rƒ   r„   r   r/   r…   rM   r9   s     r1   r}   z)AsyncAnthropicVertex._ensure_access_tokenJ  så   è ø€ Ø×ÑÐ(Ø×$Ñ$Ð$à×ÒØ1D´¼)Ó1DÐPT×P_ÑP_Ô1`×+`Ñ(ˆDÔ˜jØ—?’?Ø",�”à×Ñ×#Ò#¨4×+;Ñ+;×+AÒ+AØ(”(œ<Ó(¨×)9Ñ)9Ó:×:Ð:à×Ñ×%Ò%ÜÐQÓRÐRä˜$×*Ñ*×0Ñ0´#Ô6Ð6Ð6Ø×Ñ×%Ñ%Ð%ð ,aøð
 ;ús&   ‚ADÁ
DÁA-DÂ8DÂ9A"DÄDr†   c               óh  — |	�|
�t        d«      ‚|�|�t        d«      ‚| j                  }|	�t        ||	«      }n|
�|
}| j                  }|�i |¥|¥}n|�|}|xs | j                  } | j
                  dt        |«      r|n| j                  t        |«      r|n| j                  xs t        |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                    r1   r“   zAsyncAnthropicVertex.copy\  r”   r3   c                óB   — | j                  g | j                  ¢|¢¬«      S r–   r—   r˜   s     r1   r™   z$AsyncAnthropicVertex.with_middleware˜  rš   r3   )r2   r›   r:   r›   rY   rN   rZ   rœ   r[   r�   r\   rž   r]   rŸ   r^   r    r_   r¡   r`   úhttpx.AsyncClient | Nonera   r£   rb   r¤   rL   r¥   r¦   r§   rK   )r2   r›   r:   r›   rY   rN   rZ   rœ   r[   r�   r\   rž   r`   r¹   r]   r¨   r^   r    r‡   r    r_   r¡   rˆ   r¡   ra   r©   r‰   rª   rL   r
   r«   r¬   r°   s   @r1   r²   r²      sÃ  ø… ØÓØ
ƒOð
 "+Ø%.Ø#'Ø04Ø+/Ø;DØ.Ø48Ø59à04Ø7;Ø,1ñ8$ð ð8$ð #ð	8$ð
 !ð8$ð .ð8$ð )ð8$ð 9ð8$ð ð8$ð 2ð8$ð 3ð8$ð .ð8$ð 5ð8$ð &*ð8$ð  
õ!8$ðt òYó ðYð òYó ðYó&ð* "+Ø%.Ø#'Ø04Ø+/Ø;DØ04Ø&/Ø48Ø8<Ø59Ø9=ØBKØ+-ñ!6
ð ð6
ð #ð	6
ð
 !ð6
ð .ð6
ð )ð6
ð 9ð6
ð .ð6
ð $ð6
ð 2ð6
ð 6ð6
ð 3ð6
ð 7ð6
ð @ð6
ð  )ð!6
ð" 
ó#6
ðt €L÷	Fr3   r²   c               óz  — t        | d¬«      }t        |j                  «      r |j                  j                  dt        «       |j
                  dv rŒ|j                  dk(  r}|€t        d«      ‚t        |j                  «      st        d«      ‚|j                  j                  d«      }|j                  j                  d	d
«      }|rdnd}d|› d|› d|› d|› �|_        |j
                  dv r*|j                  dk(  r|€t        d«      ‚d|› d|› d�|_        |j
                  j                  d«      rt        d«      ‚|S )NT)ÚdeepÚanthropic_version>   ú/v1/messagesú/v1/messages?beta=trueÚpostzÐNo project_id was given and it could not be resolved from credentials. The client should be instantiated with the `project_id` argument or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.z;Expected json data to be a dictionary for post /v1/messagesÚmodelÚstreamFÚstreamRawPredictÚ
rawPredictz
/projects/z/locations/z/publishers/anthropic/models/Ú:>   ú/v1/messages/count_tokensú#/v1/messages/count_tokens?beta=truez4/publishers/anthropic/models/count-tokens:rawPredictz/v1/messages/batchesz7The Batch API is not supported in the Vertex client yet)r   r   Ú	json_dataÚ
setdefaultÚDEFAULT_VERSIONÚurlÚmethodr/   Úpopr8   Ú
startswithr   )Úinput_optionsr:   r2   rw   rÀ   rÁ   Ú	specifiers          r1   ru   ru   ¤  sQ  € Ü˜¨TÔ2€Gäˆw× Ñ Ô!Ø×Ñ×$Ñ$Ð%8¼/ÔJà‡{�{Ð@Ñ@ÀWÇ^Á^ÐW]ÒE]ØÐÜð cóð ô �w×(Ñ(Ô)ÜÐ\Ó]Ð]à×!Ñ!×%Ñ% gÓ.ˆØ×"Ñ"×&Ñ& x°Ó7ˆÙ*0Ñ&°lˆ	à" : ,¨k¸&¸ÐA^Ð_dÐ^eÐefÐgpÐfqÐrˆŒà‡{�{ÐZÑZÐ_f×_mÑ_mÐqwÒ_wØÐÜð cóð ð # : ,¨k¸&¸ÐAuÐvˆŒà‡{�{×ÑÐ4Ô5ÜÐVÓWÐWà€Nr3   )rÎ   r   r:   rN   r2   rM   rL   r   )@Ú
__future__r   r6   Útypingr   r   r   r   r   r	   Útyping_extensionsr
   r   ÚhttpxÚ r   Ú_authr   r   Ú_betar   r   Ú_typesr   r   Ú_utilsr   r   r   Ú_compatr   r   Ú_modelsr   Ú_versionr   Ú
_streamingr   r   r   r   r�   r    Ú_base_clientr!   r"   r#   r$   r%   Úresources.messagesr&   r'   Úgoogle.auth.credentialsr(   ÚGoogleCredentialsrÉ   ÚClientÚAsyncClientr)   r+   r-   rU   r²   ru   rS   r3   r1   Ú<module>rã      s  ðÝ "ã 	ß H× Hß ,ã å ß *ß "ß )ß 1Ñ 1ß 8Ý *Ý #ß -ß 9Ý *÷õ ÷ :áÝHð &€á˜¨u°U·\±\À5×CTÑCTÐ5TÑ/UÔV€ÙÐ+°5¸À¹ÀkÐRUÑFVÐ9VÑ3WÔX€ô2E�z -°Ð"@ÑAô 2EôjaFÐ& u§|¡|°V¸C±[Ð'@ÑAÀ=ô aFôHaFÐ+¨E×,=Ñ,=¸{È3Ñ?OÐ,OÑPÐR`ô aFôH r3   