
    pi@                    0   d dl m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 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, ddl-m.Z.m/Z/ erd dl0m1Z2 dZ3 edeejh                  ejj                  f         Z6 edee$e   e%e   f         Z7 G d de*e6e7f         Z8 G d de8ejh                  e$e   f   e+      Z9 G d de8ejj                  e%e   f   e,      Z:ddZ;y)     )annotationsN)TYPE_CHECKINGAnyUnionMappingTypeVar)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)DEFAULT_MAX_RETRIES
BaseClientSyncAPIClientAsyncAPIClient)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    ^/opt/services/ai/voice_agent/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r-   
project_ids     r.   r7   zBaseVertexClient.project_id*   s!    ZZ^^$AB
r0   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   )r-   err_msgr:   r9   s       r.   _make_status_errorz#BaseVertexClient._make_status_error2   sx    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&66wX\]]3&44WxVZ[[3&227XTXYYgtDDr0   Nreturnstr)rI   
str | None)rF   rJ   r:   objectr9   zhttpx.ResponserI   r   )__name__
__module____qualname__r   r/   r7   r
   rG    r0   r.   r*   r*   %   sh    - -   $E$E 	$E
 !$E 
$E $Er0   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 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i d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AnthropicVertexr#   messagesr   betaNFr/   r7   access_tokencredentialsbase_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validationc          
        t        |      s$t        j                  j                  dt              }t        |      st        d      |/t        j                  j                  d      }||dk(  rd}nd| d}t        |   t        |||||	|
|       t        |      r|| _	        || _
        || _        || _        t        |       | _        t        |       | _        y 	NCLOUD_ML_REGIONzNo 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/v1zhttps://z-aiplatform.googleapis.com/v1)versionrX   rY   rZ   custom_headerscustom_queryr]   r^   )r   r3   r4   r5   r   
ValueErrorsuper__init__r   r7   r/   rV   rW   r#   rS   r   rT   r-   r/   r7   rV   rW   rX   rY   rZ   r[   r\   r]   r^   	__class__s               r.   ri   zAnthropicVertex.__init__^   s      ZZ^^$5yAF a  zz~~&ABHX%EH!)&1NOH#*&#(C 	 		
 J(DO(& J	r0   c                F    t        || j                  | j                        S N)r7   r/   _prepare_optionsr7   r/   r-   optionss     r.   ro   z AnthropicVertex._prepare_options   s    DOODKKXXr0   c                |    |j                   j                  d      ry d| j                          |j                   d<   y NAuthorizationzBearer headersr5   _ensure_access_tokenr-   requests     r.   _prepare_requestz AnthropicVertex._prepare_request   s6    ??/-4T5N5N5P4Q+R(r0   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)r7   z0Could not resolve API token from the environment)
rV   rW   r   r7   expiredtokenr   r,   
isinstancerJ   r6   s     r.   rw   z$AnthropicVertex._ensure_access_token   s    ($$$+4+P(Dj??",##4+;+;+A+A))*%%QRR$**00#666%%%r0   r/   r7   rV   rW   rX   rY   r]   rZ   r[   set_default_headersr\   set_default_query_extra_kwargsc               "   |	|
t        d      ||t        d      | j                  }|	i ||	}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                  ||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/   r7   rV   rW   rX   rY   r]   rZ   r[   r\   rP   rg   _custom_headers_custom_query_clientrk   r   r/   r7   r   rV   rW   rX   r   r   rY   rZ   r-   r/   r7   rV   rW   rX   rY   r]   rZ   r[   r   r\   r   r   rv   paramss                   r.   copyzAnthropicVertex.copy   5   ( &+>+Jopp$):)Fkll&&&44O4G ,)G##$00-0F*&F!1T\\t~~ 
%f-64;;%-j%9zt?[R[%:):):#7t'7'7.$.w$ADLLw#'/'<$BRBR# 
 
 	
r0   )r/   str | NotGivenr7   r   rV   rK   rW   GoogleCredentials | NonerX   str | httpx.URL | NonerY   'float | httpx.Timeout | None | NotGivenrZ   intr[   Mapping[str, str] | Noner\   Mapping[str, object] | Noner]   httpx.Client | Noner^   boolrI   Nonerq   r   rI   r   ry   zhttpx.RequestrI   r   rH   )r/   r   r7   r   rV   rK   rW   r   rX   r   rY   r   r]   r   rZ   int | NotGivenr[   r   r   r   r\   r   r   r   r   Mapping[str, Any]rI   r	   rM   rN   rO   __annotations__r   r   ri   r
   ro   rz   rw   r   with_options__classcell__rk   s   @r.   rR   rR   Z   s   
J
 "+%.#'04+/;D.4859+/,12 2 #	2
 !2 .2 )2 92 2 22 32 )2 &*2 
2h Y Y S S&* "+%.#'04+/;D+/&/488<599=+-4
 4
 #	4

 !4
 .4
 )4
 94
 )4
 $4
 24
 64
 34
 74
 )4
  
!4
p Lr0   rR   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 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i d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZeZ xZS )AsyncAnthropicVertexr$   rS   r   rT   NFrU   c          
        t        |      s$t        j                  j                  dt              }t        |      st        d      |/t        j                  j                  d      }||dk(  rd}nd| d}t        |   t        |||||	|
|       t        |      r|| _	        || _
        || _        || _        t        |       | _        t        |       | _        y r`   )r   r3   r4   r5   r   rg   rh   ri   r   r7   r/   rV   rW   r$   rS   r   rT   rj   s               r.   ri   zAsyncAnthropicVertex.__init__   s      ZZ^^$5yAF a  zz~~&ABHX%EH!)&1NOH#*&#(C 	 		
 J(DO(&%d+dO	r0   c                N   K   t        || j                  | j                        S wrm   rn   rp   s     r.   ro   z%AsyncAnthropicVertex._prepare_options#  s     DOODKKXXs   #%c                   K   |j                   j                  d      ry d| j                          d {    |j                   d<   y 7 wrs   ru   rx   s     r.   rz   z%AsyncAnthropicVertex._prepare_request'  s@     ??/-44;T;T;V5V4W+X(5Vs   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|   )rV   rW   r   r   r7   r}   r~   r   r,   r   rJ   r6   s     r.   rw   z)AsyncAnthropicVertex._ensure_access_token/  s     ($$$1D)1DPTP_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               "   |	|
t        d      ||t        d      | j                  }|	i ||	}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                  ||d
|S r   r   r   s                   r.   r   zAsyncAnthropicVertex.copyA  r   r0   )r/   r   r7   r   rV   rK   rW   r   rX   r   rY   r   rZ   r   r[   r   r\   r   r]   httpx.AsyncClient | Noner^   r   rI   r   r   r   rH   )r/   r   r7   r   rV   rK   rW   r   rX   r   rY   r   r]   r   rZ   r   r[   r   r   r   r\   r   r   r   r   r   rI   r	   r   r   s   @r.   r   r      s   
O
 "+%.#'04+/;D.485904,12$ 2$ #	2$
 !2$ .2$ )2$ 92$ 2$ 22$ 32$ .2$ &*2$ 
2$h Y Y Y Y&* "+%.#'04+/;D04&/488<599=+-4
 4
 #	4

 !4
 .4
 )4
 94
 .4
 $4
 24
 64
 34
 74
 )4
  
!4
p Lr0   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postzNo 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,   popr5   
startswithr   )input_optionsr7   r/   rq   r   r   	specifiers          r.   ro   ro   |  sQ   T2Gw  !$$%8/J{{@@W^^W]E] c  w(()\]]!!%%g.""&&x7*0&l	":,k&A^_d^eefgpfqr{{ZZ_f_m_mqw_w c  #:,k&Auv{{45VWWNr0   )r   r   r7   rK   r/   rJ   rI   r   )<
__future__r   r3   typingr   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   _base_clientr   r    r!   r"   resources.messagesr#   r$   google.auth.credentialsr%   GoogleCredentialsr   ClientAsyncClientr&   r(   r*   rR   r   ro   rP   r0   r.   <module>r      s    " 	 > > ,   * " ) 1 1 8 * # - 9  :H &uU\\5CTCT5T/UV+5kRUFV9V3WX2Ez-"@A 2EjN&u||VC['@A= NbN+E,=,={3?O,OPR` Nb r0   