o
    iq&                     @   s`  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
 d
e	ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd de	Z!G dd deZ"G dd deZ#G dd  d eZ$G d!d" d"eZ%e$e%B Z&ee'd#< G d$d% d%eZ(e(e%B e$B Z)ee'd&< G d'd( d(eZ*G d)d* d*eZ+G d+d, d,e	Z,e-e.e,B  Z/d-e/dB d.e.dB d/e-e dB fd0d1Z0G d2d3 d3eZ1G d4d5 d5eZ2G d6d7 d7e	Z3G d8d9 d9eZ4G d:d; d;e	Z5G d<d= d=eZ6G d>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                   @   sF   e Zd ZU eddZdZeee dB  e	d< e
ddedd ZdS )	OpenAIBaseModelallowextraNfield_nameswrap)modec                    s   ||}t |ts|S | j  d u r4t  | j D ]\}} | t|dd  }r0 | q | _t fdd|D rIt	
d|    |S )Naliasc                 3   s    | ]}| vV  qd S N ).0kr   r   ]/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/entrypoints/openai/engine/protocol.py	<genexpr>2   s    z7OpenAIBaseModel.__log_extra_fields__.<locals>.<genexpr>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   r   r   __log_extra_fields__!   s$   



z$OpenAIBaseModel.__log_extra_fields__)__name__
__module____qualname__r   model_configr   r   r!   str__annotations__r	   classmethodr0   r   r   r   r   r      s   
 
r   c                   @   s6   e Zd ZU eed< eed< dZedB ed< eed< dS )	ErrorInfomessagetypeNparamcode)r1   r2   r3   r5   r6   r;   intr   r   r   r   r8   :   s
   
 r8   c                   @   s   e Zd ZU eed< dS )ErrorResponseerrorN)r1   r2   r3   r8   r6   r   r   r   r   r>   A   s   
 r>   c                   @   s   e Zd ZU edd dZeed< dZeed< ed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ed< dZedB ed< d	Zeed< dS )ModelPermissionc                   C   s   dt   S )Nz
modelperm-r   r   r   r   r   <lambda>F       zModelPermission.<lambda>default_factoryidmodel_permissionobjectc                   C      t t S r   r=   timer   r   r   r   rA   H   rB   createdFallow_create_engineTallow_samplingallow_logprobsallow_search_indices
allow_viewallow_fine_tuning*organizationNgroupis_blocking)r1   r2   r3   r   rE   r5   r6   rG   rK   r=   rL   boolrM   rN   rO   rP   rQ   rS   rT   rU   r   r   r   r   r@   E   s   
 r@   c                   @   s   e Zd ZU eed< dZeed< edd dZeed< dZ	eed	< d
Z
ed
B ed< d
Zed
B ed< d
Zed
B ed< eedZee ed< d
S )	ModelCardrE   modelrG   c                   C   rH   r   rI   r   r   r   r   rA   W   rB   zModelCard.<lambda>rC   rK   vllmowned_byNrootparentmax_model_len
permission)r1   r2   r3   r5   r6   rG   r   rK   r=   rZ   r[   r\   r]   listr^   r@   r   r   r   r   rW   T   s   
 rW   c                   @   s0   e Zd ZU dZeed< eedZee	 ed< dS )	ModelListr_   rG   rC   r+   N)
r1   r2   r3   rG   r5   r6   r   r_   r+   rW   r   r   r   r   r`   _   s   
 r`   c                   @   s   e Zd ZU dZedB ed< dS )PromptTokenUsageInfoNcached_tokens)r1   r2   r3   rb   r=   r6   r   r   r   r   ra   d   s   
 ra   c                   @   sF   e Zd ZU dZeed< dZeed< dZedB ed< dZe	dB ed< dS )	UsageInfor   prompt_tokenstotal_tokensNcompletion_tokensprompt_tokens_details)
r1   r2   r3   rd   r=   r6   re   rf   rg   ra   r   r   r   r   rc   h   s
   
 rc   c                   @   s&   e Zd ZU eed< dZedB ed< dS )RequestResponseMetadata
request_idNfinal_usage_info)r1   r2   r3   r5   r6   rj   rc   r   r   r   r   rh   o   s   
 rh   c                   @   sV   e Zd ZU eed< dZedB ed< edddZeee	f dB ed< dZ
edB ed< dS )JsonSchemaResponseFormatnameNdescriptionschemadefaultr   json_schemastrict)r1   r2   r3   r5   r6   rm   r   rq   r    r   rr   rV   r   r   r   r   rk   t   s
   
  rk   c                   @   s>   e Zd ZU eed< edddZeeef dB ed< eed< dS )LegacyStructuralTagbeginNrn   ro   structural_tag_schemaend)	r1   r2   r3   r5   r6   r   ru   r    r   r   r   r   r   rs   }   s   
  rs   c                   @   s2   e Zd ZU ed ed< ee ed< ee ed< dS )!LegacyStructuralTagResponseFormatstructural_tagr:   
structurestriggersN)r1   r2   r3   r   r6   r_   rs   r5   r   r   r   r   rw      s   
 rw   c                   @   s"   e Zd ZU ed ed< eed< dS )StructuralTagResponseFormatrx   r:   formatN)r1   r2   r3   r   r6   r   r   r   r   r   r{      s   
 r{   AnyStructuralTagResponseFormatc                   @   s*   e Zd ZU ed ed< dZedB ed< dS )ResponseFormat)textjson_objectrq   r:   Nrq   )r1   r2   r3   r   r6   rq   rk   r   r   r   r   r~      s   
 r~   AnyResponseFormatc                   @   s.   e Zd ZU dZedB ed< dZedB ed< dS )StreamOptionsTNinclude_usageFcontinuous_usage_stats)r1   r2   r3   r   rV   r6   r   r   r   r   r   r         
 r   c                   @   s>   e Zd ZU eed< dZedB ed< dZeeef dB ed< dS )FunctionDefinitionrl   Nrm   
parameters)	r1   r2   r3   r5   r6   rm   r   r    r   r   r   r   r   r      s   
 r   c                   @   sL   e Zd ZU eed< dZee dB ed< dZe	eef dB ed< e
ddZdS )LogitsProcessorConstructorqualnameNargskwargsforbidr   )r1   r2   r3   r5   r6   r   r_   r   r   r    r   r4   r   r   r   r   r      s
   
 r   
processorspatternreturnc                 C   s   | rZ|rZg }| D ]O}t |tr|n|j}t||s"td| dzt|}W n ty? } ztd| d| |d }~ww t |trR||j	pJg i |j
pOi }|| q|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   r5   r   rematch
ValueErrorr   	Exceptionr   r   r   append)r   r   logits_processors	processorr   logits_processorer   r   r   get_logits_processors   s>   

r   c                   @   s6   e Zd ZU edddZedB ed< eed< eed< dS )FunctionCallNT)rp   excluderE   rl   	arguments)r1   r2   r3   r   rE   r5   r6   r   r   r   r   r      s   
 r   c                   @   s8   e Zd ZU eedZeed< dZe	d ed< e
ed< dS )ToolCallrC   rE   functionr:   N)r1   r2   r3   r   r
   rE   r5   r6   r:   r   r   r   r   r   r   r      s   
 r   c                   @   s.   e Zd ZU dZedB ed< dZedB ed< dS )DeltaFunctionCallNrl   r   )r1   r2   r3   rl   r5   r6   r   r   r   r   r   r      r   r   c                   @   sJ   e Zd ZU dZedB ed< dZed dB ed< eed< dZ	e
dB ed< dS )DeltaToolCallNrE   r   r:   index)r1   r2   r3   rE   r5   r6   r:   r   r=   r   r   r   r   r   r   r      s
   
 r   c                   @   s2   e Zd ZU eed< ee ed< dZedB ed< dS )ExtractedToolCallInformationtools_called
tool_callsNcontent)	r1   r2   r3   rV   r6   r_   r   r   r5   r   r   r   r   r      s   
 r   c                   @   sT   e Zd ZU dZedB ed< dZedB ed< dZedB ed< ee	dZ
e	e ed< dS )DeltaMessageNroler   	reasoningrC   r   )r1   r2   r3   r   r5   r6   r   r   r   r_   r   r   r   r   r   r   r     s
   
 r   c                   @   s   e Zd ZU eeddZeed< ee	 ed< 	 dZ
edB ed< 	 eed< 	 dZedB ed< d	ZedB ed
< dZedB ed< edddZedB ed< edddZe	ed< edddZeeef dB 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.)rD   rm   ri   	token_idsNfeaturessampling_paramsrX   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).)rp   rm   
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)r1   r2   r3   r   r   ri   r5   r6   r_   r=   r   r   rX   r   rV   r   r   r   r   r   r    r   r   r   r   r   r   
  s4   
 r   )8rJ   typingr   r   r   r   regexr   pydanticr   r   r   r	   vllm.entrypoints.chat_utilsr
   vllm.loggerr   vllm.sampling_paramsr   
vllm.utilsr   vllm.utils.import_utilsr   r1   r'   r   r8   r>   r@   rW   r`   ra   rc   rh   rk   rs   rw   r{   r}   r6   r~   r   r   r   r   r_   r5   LogitsProcessorsr   r   r   r   r   r   r   r   r   r   r   r   <module>   s\   
 	




"	