
    .`i&                        U d dl Z d dlmZmZmZmZ d dlZd dlm	Z	m
Z
mZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ  e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" G d de          Z# G d d e          Z$ G d! d"e          Z%e$e%z  Z&ee'd#<    G d$ d%e          Z(e(e%z  e$z  Z)ee'd&<    G d' d(e          Z* G d) d*e          Z+ G d+ d,e	          Z,e-e.e,z           Z/d-e/dz  d.e.dz  d/e-e         dz  fd0Z0 G d1 d2e          Z1 G d3 d4e          Z2 G d5 d6e	          Z3 G d7 d8e          Z4 G d9 d:e	          Z5 G d; d<e          Z6 G d= d>e	          Z7dS )?    N)AnyClassVarLiteral	TypeAlias)	BaseModel
ConfigDictFieldmodel_validator)make_tool_call_id)init_logger)SamplingParamsrandom_uuid)resolve_obj_by_qualnamec                       e Zd ZU  ed          ZdZeee         dz           e	d<    e
d          ed                         ZdS )OpenAIBaseModelallowextraNfield_nameswrapmodec                     ||          }t          |t                    s|S | j        qt                      | j                                        D ]B\  }}                    |           t          |dd           x}r                    |           C| _        t          fd|D                       r0t          
                    d|                                z
             |S )Naliasc              3       K   | ]}|vV  	d S N ).0kr   s     {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/openai/engine/protocol.py	<genexpr>z7OpenAIBaseModel.__log_extra_fields__.<locals>.<genexpr>4   s(      22q#222222    z@The following fields were present in the request but ignored: %s)
isinstancedictr   setmodel_fieldsitemsaddgetattranyloggerwarningkeys)clsdatahandlerresult
field_namefieldr   r   s          @r!   __log_extra_fields__z$OpenAIBaseModel.__log_extra_fields__#   s     $%% 	Mo%%K%(%5%;%;%=%= + +!
E
+++#E7D9995 +OOE***)CO 2222T22222 	NNR		k)   r#   )__name__
__module____qualname__r   model_configr   r   r&   str__annotations__r
   classmethodr5   r   r#   r!   r   r      sx         :G,,,L .2K#c(T/*111_&!!!  [ "!  r#   r   c                   B    e Zd ZU eed<   eed<   dZedz  ed<   eed<   dS )	ErrorInfomessagetypeNparamcode)r6   r7   r8   r:   r;   rA   intr   r#   r!   r>   r>   <   s?         LLL
IIIE3:
IIIIIr#   r>   c                       e Zd ZU eed<   dS )ErrorResponseerrorN)r6   r7   r8   r>   r;   r   r#   r!   rE   rE   C   s         r#   rE   c                       e Zd ZU  ed           Zeed<   dZeed<    ed           Ze	ed<   dZ
eed	<   d
Zeed<   d
Zeed<   dZeed<   d
Zeed<   dZeed<   dZeed<   dZedz  ed<   dZeed<   dS )ModelPermissionc                  $    dt                       S )Nz
modelperm-r   r   r#   r!   <lambda>zModelPermission.<lambda>H   s    ,H,H,H r#   default_factoryidmodel_permissionobjectc                  B    t          t          j                              S r   rC   timer   r#   r!   rJ   zModelPermission.<lambda>J       TY[[1A1A r#   createdFallow_create_engineTallow_samplingallow_logprobsallow_search_indices
allow_viewallow_fine_tuning*organizationNgroupis_blocking)r6   r7   r8   r	   rM   r:   r;   rO   rT   rC   rU   boolrV   rW   rX   rY   rZ   r\   r]   r^   r   r#   r!   rH   rH   G   s         e$H$HIIIBIII$FC$$$5)A)ABBBGSBBB %%%%NDND!&$&&&J#t###L#E3:Kr#   rH   c                       e Zd ZU eed<   dZeed<    ed           Zeed<   dZ	eed<   d	Z
ed	z  ed
<   d	Zed	z  ed<   d	Zed	z  ed<    ee          Zee         ed<   d	S )	ModelCardrM   modelrO   c                  B    t          t          j                              S r   rQ   r   r#   r!   rJ   zModelCard.<lambda>Y   rS   r#   rK   rT   vllmowned_byNrootparentmax_model_len
permission)r6   r7   r8   r:   r;   rO   r	   rT   rC   re   rf   rg   rh   listri   rH   r   r#   r!   ra   ra   V   s         GGGFC5)A)ABBBGSBBBHcD#*FC$J $M3:$$$(-d(C(C(CJ_%CCCCCr#   ra   c                   L    e Zd ZU dZeed<    ee          Zee	         ed<   dS )	ModelListrj   rO   rK   r0   N)
r6   r7   r8   rO   r:   r;   r	   rj   r0   ra   r   r#   r!   rl   rl   a   sC         FC!E$777D$y/77777r#   rl   c                   $    e Zd ZU dZedz  ed<   dS )PromptTokenUsageInfoNcached_tokens)r6   r7   r8   ro   rC   r;   r   r#   r!   rn   rn   f   s&          $M3:$$$$$r#   rn   c                   T    e Zd ZU dZeed<   dZeed<   dZedz  ed<   dZe	dz  ed<   dS )	UsageInfor   prompt_tokenstotal_tokensNcompletion_tokensprompt_tokens_details)
r6   r7   r8   rr   rC   r;   rs   rt   ru   rn   r   r#   r!   rq   rq   j   s^         M3L#$%sTz%%%9=/$6=====r#   rq   c                   .    e Zd ZU eed<   dZedz  ed<   dS )RequestResponseMetadata
request_idNfinal_usage_info)r6   r7   r8   r:   r;   ry   rq   r   r#   r!   rw   rw   q   s1         OOO)-i$&-----r#   rw   c                   |    e Zd ZU eed<   dZedz  ed<    edd          Zeee	f         dz  ed<   dZ
edz  ed<   dS )JsonSchemaResponseFormatnameNdescriptionschemadefaultr   json_schemastrict)r6   r7   r8   r:   r;   r}   r	   r   r%   r   r   r_   r   r#   r!   r{   r{   v   sq         
III"Kt""" */t8)L)L)LKc3h$&LLLFD4Kr#   r{   c                   ^    e Zd ZU eed<    edd          Zeeef         dz  ed<   eed<   dS )LegacyStructuralTagbeginNr~   r   structural_tag_schemaend)	r6   r7   r8   r:   r;   r	   r   r%   r   r   r#   r!   r   r      sQ         JJJ 495X3V3V3V4S>D0VVV	HHHHHr#   r   c                   R    e Zd ZU ed         ed<   ee         ed<   ee         ed<   dS )!LegacyStructuralTagResponseFormatstructural_tagr@   
structurestriggersN)r6   r7   r8   r   r;   rj   r   r:   r   r#   r!   r   r      sF         
"
####())))3ir#   r   c                   0    e Zd ZU ed         ed<   eed<   dS )StructuralTagResponseFormatr   r@   formatN)r6   r7   r8   r   r;   r   r   r#   r!   r   r      s+         
"
####KKKKKr#   r   AnyStructuralTagResponseFormatc                   :    e Zd ZU ed         ed<   dZedz  ed<   dS )ResponseFormat)textjson_objectr   r@   Nr   )r6   r7   r8   r   r;   r   r{   r   r#   r!   r   r      s:         
6
777737K)D077777r#   r   AnyResponseFormatc                   8    e Zd ZU dZedz  ed<   dZedz  ed<   dS )StreamOptionsTNinclude_usageFcontinuous_usage_stats)r6   r7   r8   r   r_   r;   r   r   r#   r!   r   r      s;         !%M4$;%%%*/D4K/////r#   r   c                   R    e Zd ZU eed<   dZedz  ed<   dZeeef         dz  ed<   dS )FunctionDefinitionr|   Nr}   
parameters)	r6   r7   r8   r:   r;   r}   r   r%   r   r   r#   r!   r   r      sL         
III"Kt"""(,JS#X%,,,,,r#   r   c                   v    e Zd ZU eed<   dZee         dz  ed<   dZe	eef         dz  ed<    e
d          ZdS )LogitsProcessorConstructorqualnameNargskwargsforbidr   )r6   r7   r8   r:   r;   r   rj   r   r   r%   r   r9   r   r#   r!   r   r      sa         MMM!D$s)d
!!!$(FDcNT!(((:H---LLLr#   r   
processorspatternreturnc                    | r|rg }| D ]}t          |t                    r|n|j        }t          j        ||          st          d| d          	 t          |          }n(# t          $ r}t          d| d|           |d }~ww xY wt          |t                    r ||j	        pg i |j
        pi }|                    |           |S | rt          d          d S )NzLogits processor 'ze' is not allowed by this server. See --logits-processor-pattern engine argument for more information.z' could not be resolved: zThe `logits_processors` argument is not supported by this server. See --logits-processor-pattern engine argument for more information.)r$   r:   r   rematch
ValueErrorr   	Exceptionr   r   r   append)r   r   logits_processors	processorr   logits_processores          r!   get_logits_processorsr      sd     
g 
# 	7 	7I$.y#$>$>VyyIDVH8GX..  , , , ,  
#:8#D#D      OOOAOO  )%?@@ #3#3^)r$-6-=-C$ $  $$%56666  	 
$
 
 	

 4s   A""
B,BBc                   $    e Zd ZU eed<   eed<   dS )FunctionCallr|   	argumentsN)r6   r7   r8   r:   r;   r   r#   r!   r   r      s"         
IIINNNNNr#   r   c                   V    e Zd ZU  ee          Zeed<   dZe	d         ed<   e
ed<   dS )ToolCallrK   rM   functionr@   N)r6   r7   r8   r	   r   rM   r:   r;   r@   r   r   r   r#   r!   r   r      sQ         e$5666B666 *D'*
***r#   r   c                   8    e Zd ZU dZedz  ed<   dZedz  ed<   dS )DeltaFunctionCallNr|   r   )r6   r7   r8   r|   r:   r;   r   r   r#   r!   r   r      s:         D#* IsTz     r#   r   c                   b    e Zd ZU dZedz  ed<   dZed         dz  ed<   eed<   dZ	e
dz  ed<   dS )DeltaToolCallNrM   r   r@   index)r6   r7   r8   rM   r:   r;   r@   r   rC   r   r   r   r#   r!   r   r      s_         Bd
'+D'*

$+++JJJ)-H$&-----r#   r   c                   D    e Zd ZU eed<   ee         ed<   dZedz  ed<   dS )ExtractedToolCallInformationtools_called
tool_callsNcontent)	r6   r7   r8   r_   r;   rj   r   r   r:   r   r#   r!   r   r      sF          X GS4Zr#   r   c                       e Zd ZU 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<   	  e	e
          Ze
e         ed<    ed	          d
             ZdS )DeltaMessageNroler   	reasoningreasoning_contentrK   r   afterr   c                     | j         | _        | S )z?Copy reasoning to reasoning_content for backward compatibility.)r   r   )selfs    r!   #handle_deprecated_reasoning_contentz0DeltaMessage.handle_deprecated_reasoning_content  s     "&r#   )r6   r7   r8   r   r:   r;   r   r   r   r	   rj   r   r   r
   r   r   r#   r!   r   r      s         D#*GS4Z IsTz   $(sTz(((.&+eD&A&A&AJ]#AAA_'"""  #"  r#   r   c                   2   e Zd ZU  eed          Zeed<   ee	         ed<   	 dZ
edz  ed<   	 eed<   	 dZedz  ed<   d	Zedz  ed
<   dZedz  ed<    edd          Zedz  ed<    edd          Ze	ed<    edd          Zeeef         dz  ed<   dS )GenerateRequestzThe request_id related to this request. If the caller does not set it, a random_uuid will be generated. This id is used through out the inference process and return in response.)rL   r}   rx   	token_idsNfeaturessampling_paramsrb   Fstreamstream_optionsa/  If specified, the prefix cache will be salted with the provided string to prevent an attacker to guess prompts in multi-user environments. The salt should be random, protected from access by 3rd parties, and long enough to be unpredictable (e.g., 43 characters base64-encoded, corresponding to 256 bit).)r   r}   
cache_saltr   zThe priority of the request (lower means earlier handling; default: 0). Any priority other than 0 will raise an error if the served model does not use priority scheduling.priorityz5KVTransfer parameters used for disaggregated serving.kv_transfer_params)r6   r7   r8   r	   r   rx   r:   r;   rj   rC   r   r   rb   r   r_   r   r   r   r   r   r%   r   r   r#   r!   r   r     sb        e#H  J    Cy.  HcDj0####0E3:FD4K+/NMD(///"U
 
 
Jd
 
 
 
 ED  Hc    16K1 1 1S#X-     r#   r   )8rR   typingr   r   r   r   regexr   pydanticr   r   r	   r
   vllm.entrypoints.chat_utilsr   vllm.loggerr   vllm.sampling_paramsr   
vllm.utilsr   vllm.utils.import_utilsr   r6   r,   r   r>   rE   rH   ra   rl   rn   rq   rw   r{   r   r   r   r   r;   r   r   r   r   r   rj   r:   LogitsProcessorsr   r   r   r   r   r   r   r   r   r#   r!   <module>r      s    4 4 4 4 4 4 4 4 4 4 4 4                : 9 9 9 9 9 # # # # # #      # " " " " " ; ; ; ; ; ;	X		    i   @           O       o   D D D D D D D D8 8 8 8 8 8 8 8
% % % % %? % % %> > > > > > > >. . . . .i . . .
           /              /    &(CC 	   
8 8 8 8 8_ 8 8 8 003TT 9   
0 0 0 0 0O 0 0 0
- - - - - - - -. . . . . . . . 889  4'25*	#Y   D    ?   
       ! ! ! ! !	 ! ! !. . . . .O . . .	 	 	 	 	9 	 	 	    ?    . . . . .i . . . . .r#   