
    -`i                     j   d Z ddlZddlmZmZmZ ddlmZmZ  G d de          Z	 G d de          Z
 G d	 d
e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z*Pydantic models for Anthropic API protocol    N)AnyLiteralOptional)	BaseModelfield_validatorc                   (    e Zd ZU dZeed<   eed<   dS )AnthropicErrorz!Error structure for Anthropic APItypemessageN)__name__
__module____qualname____doc__str__annotations__     w/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/anthropic/protocol.pyr	   r	      s(         ++
IIILLLLLr   r	   c                   8    e Zd ZU dZdZed         ed<   eed<   dS )AnthropicErrorResponsez*Error response structure for Anthropic APIerrorr
   N)r   r   r   r   r
   r   r   r	   r   r   r   r   r      s9         44$D''
$$$r   r   c                   P    e Zd ZU dZeed<   eed<   dZedz  ed<   dZedz  ed<   dS )AnthropicUsagezToken usage informationinput_tokensoutput_tokensNcache_creation_input_tokenscache_read_input_tokens)r   r   r   r   intr   r   r   r   r   r   r   r      sZ         !!.2t222*.S4Z.....r   r   c                       e Zd ZU dZed         ed<   dZedz  ed<   dZe	ee
f         dz  ed<   dZedz  ed<   dZedz  ed<   dZe	ee
f         dz  ed	<   dZeee	ee
f                  z  dz  ed
<   dZedz  ed<   dS )AnthropicContentBlockzContent block in message)textimagetool_usetool_resultr
   Nr!   sourceidnameinputcontentis_error)r   r   r   r   r   r   r!   r   r%   dictr   r&   r'   r(   r)   listr*   boolr   r   r   r    r    "   s         ""
<
====D#*$(FDcNT!(((Bd
D#*#'E4S>D '''15GS4S#X''$.555 HdTk     r   r    c                   F    e Zd ZU dZed         ed<   eee         z  ed<   dS )AnthropicMessagezMessage structure)user	assistantroler)   N)	r   r   r   r   r   r   r   r,   r    r   r   r   r/   r/   1   sA         
%
&&&&4-.......r   r/   c                       e Zd ZU dZeed<   dZedz  ed<   eeef         ed<    e	d          e
d                         ZdS )AnthropicToolzTool definitionr'   Ndescriptioninput_schemac                 `    t          |t                    st          d          d|vrd|d<   |S )Nz!input_schema must be a dictionaryr
   object)
isinstancer+   
ValueErrorclsvs     r   validate_input_schemaz#AnthropicTool.validate_input_schema?   s=     !T"" 	B@AAA?? AfIr   )r   r   r   r   r   r   r5   r+   r   r   classmethodr>   r   r   r   r4   r4   8   s{         
III"Kt"""sCx.   _^$$  [ %$  r   r4   c                   >    e Zd ZU dZed         ed<   dZedz  ed<   dS )AnthropicToolChoicezTool Choice definition)autoanytoolr
   Nr'   )r   r   r   r   r   r   r'   r   r   r   r   rA   rA   I   s>           
'
((((D#*r   rA   c                      e Zd ZU dZeed<   ee         ed<   eed<   dZ	e
eef         dz  ed<   dZee         dz  ed<   dZedz  ed	<   dZeee         z  dz  ed
<   dZedz  ed<   dZedz  ed<   dZee         dz  ed<   dZedz  ed<   dZedz  ed<    ed          ed                         Z ed          ed                         ZdS )AnthropicMessagesRequestzAnthropic Messages API requestmodelmessages
max_tokensNmetadatastop_sequencesFstreamsystemtemperaturetool_choicetoolstop_ktop_pc                 (    |st          d          |S )NzModel is requiredr:   r;   s     r   validate_modelz'AnthropicMessagesRequest.validate_model`   s       	20111r   c                 0    |dk    rt          d          |S )Nr   zmax_tokens must be positiverT   r;   s     r   validate_max_tokensz,AnthropicMessagesRequest.validate_max_tokensg   s!     66:;;;r   )r   r   r   r   r   r   r,   r/   r   rJ   r+   r   rK   rL   r-   rM   r    rN   floatrO   rA   rP   r4   rQ   rR   r   r?   rU   rW   r   r   r   rF   rF   P   st        ((JJJ#$$$$OOO&*Hd38nt#***'+NDI$+++FD4K7;FC$,--4;;; $K$$$.2K$t+222(,E4%,,,E3:E54<_W  [ 
 _\""  [ #"  r   rF   c                       e Zd ZU dZdZed         dz  ed<   dZedz  ed<   dZ	edz  ed<   dZ
ed         dz  ed<   dZedz  ed	<   dS )
AnthropicDeltazDelta for streaming responsesN)
text_deltainput_json_deltar
   r!   partial_jsonend_turnrI   stop_sequencer#   stop_reasonr`   )r   r   r   r   r
   r   r   r!   r   r]   ra   r`   r   r   r   rZ   rZ   o   s         ''=AD'2
3d
:AAAD#*#L#*###
 	 EFM   !%M3:$$$$$r   rZ   c                       e Zd ZU dZed         ed<   dZed         ed<   dZe	dz  ed<   dZ
edz  ed<   dZedz  ed	<   dZedz  ed
<   dZedz  ed<   dS )AnthropicStreamEventzStreaming event)message_startmessage_deltamessage_stopcontent_block_startcontent_block_deltacontent_block_stoppingr   r
   NAnthropicMessagesResponser   deltacontent_blockindexr   usage)r   r   r   r   r   r   r   r   rl   rZ   rm   r    rn   r   r   r	   ro   r   r   r   r   rc   rc   }   s         
		 	 	 	 6:GX12999#'E>D '''26M(4/666E3:#'E>D '''#'E>D '''''r   rc   c                       e Zd ZU dZeed<   dZed         ed<   dZed         ed<   e	e
         ed<   eed<   d	Zed
         d	z  ed<   d	Zed	z  ed<   d	Zed	z  ed<   d Zd	S )rk   zAnthropic Messages API responser&   r   r
   r1   r2   r)   rG   Nr^   ra   r`   ro   c                 n    | j         s-dt          t          j                    dz             | _         d S d S )Nmsg_i  )r&   r   time)self#_AnthropicMessagesResponse__contexts     r   model_post_initz)AnthropicMessagesResponse.model_post_init   s<    w 	76St!34466DGGG	7 	7r   )r   r   r   r   r   r   r
   r   r2   r,   r    ra   r`   ro   r   rv   r   r   r   rk   rk      s         ))GGG(D')
(((!,D'+
,,,'((((JJJ 	 EFM   !%M3:$$$#'E>D '''7 7 7 7 7r   rk   )r   rs   typingr   r   r   pydanticr   r   r	   r   r   r    r/   r4   rA   rF   rZ   rc   rk   r   r   r   <module>ry      s$   1 0  ) ) ) ) ) ) ) ) ) ) / / / / / / / /    Y       Y   / / / / /Y / / /! ! ! ! !I ! ! !/ / / / /y / / /    I   "    )       y   >% % % % %Y % % %( ( ( ( (9 ( ( (*7 7 7 7 7	 7 7 7 7 7r   