o
    
۾i	"                     @   sd  U d dl mZ d dlmZmZmZmZ d dlZd dlm	Z	m
Z
 d dlmZ er4d dlmZmZmZmZ neZeZeZ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 ee B eB eB Zeed< 	 eeB ee B eB Zeed< 	 eeB ee B eB Zeed< 	 G dd de
ZeeB Zeed< 	 eeB eB Z eed< 	 eeB Z!eed< 	 G dd deZ"G dd de
Z#G dd de#Z$	d0dee dedB de$fd d!Z%G d"d# d#e#Z&	d0d$ej'dedB de&fd%d&Z(e$e&B eB Z)eed'< 	 e$eB Z*eed(< 	 e$eB Z+eed)< 	 G d*d+ d+e
Z,e)e,B Z-eed,< 	 e)eB Z.eed-< eG d.d/ d/Z/dS )1    )	dataclass)TYPE_CHECKINGAnyLiteral	TypeAliasN)NotRequired	TypedDict)SamplingParams)MultiModalDataDictMultiModalEncDecInputsMultiModalInputsMultiModalUUIDDictc                   @   sX   e Zd ZU dZeedB  ed< 	 eeee	f dB  ed< 	 ee
 ed< 	 ee ed< dS )_PromptOptionszh
    Additional options available to all
    [`SingletonPrompt`][vllm.inputs.data.SingletonPrompt].
    Nmulti_modal_datamm_processor_kwargsmulti_modal_uuids
cache_salt)__name__
__module____qualname____doc__r   r
   __annotations__dictstrr   r    r   r   D/home/ubuntu/.local/lib/python3.10/site-packages/vllm/inputs/data.pyr      s   
 r   c                   @   s   e Zd ZU dZeed< dS )
TextPromptzSchema for a text prompt.promptN)r   r   r   r   r   r   r   r   r   r   r   =   s   
 r   c                   @   s>   e Zd ZU dZee ed< 	 ee ed< 	 eee  ed< dS )TokensPromptzSchema for a tokenized prompt.prompt_token_idsr   token_type_idsN)	r   r   r   r   listintr   r   r   r   r   r   r   r   D   s   
 r   c                   @   s*   e Zd ZU dZejed< 	 ee ed< dS )EmbedsPromptz2Schema for a prompt provided via token embeddings.prompt_embedsr   N)	r   r   r   r   torchTensorr   r   r   r   r   r   r   r#   Q   s   
 
r#   DecoderOnlyPromptEncoderPromptDecoderPromptc                   @   s(   e Zd ZU dZeed< 	 edB ed< dS )ExplicitEncoderDecoderPromptz
    Schema for a pair of encoder and decoder singleton prompts.

    Note:
        This schema is not valid for decoder-only models.
    encoder_promptNdecoder_prompt)r   r   r   r   r(   r   r)   r   r   r   r   r*      s   
 r*   EncoderDecoderPromptSingletonPrompt
PromptTypec                   @   $   e Zd ZU dZeed< 	 eed< dS )
DataPromptz
    Represents generic inputs that are converted to
    [`PromptType`][vllm.inputs.data.PromptType] by IO processor plugins.
    datadata_formatN)r   r   r   r   r   r   r   r   r   r   r   r1      s   
 r1   c                   @   s   e Zd ZU dZee ed< dS )_InputOptionsz:
    Additional options available to all input types.
    r   N)r   r   r   r   r   r   r   r   r   r   r   r4      s   
 r4   c                   @   s,   e Zd ZU dZed ed< 	 ee ed< dS )TokenInputszRepresents token-based inputs.tokentyper   N)r   r   r   r   r   r   r!   r"   r   r   r   r   r5      s   
 r5   r   r   returnc                 C       t d| d}|dur||d< |S )zQConstruct [`TokenInputs`][vllm.inputs.data.TokenInputs] from optional
    values.r6   )r7   r   Nr   )r5   )r   r   inputsr   r   r   token_inputs      r;   c                   @   s*   e Zd ZU dZed ed< 	 ejed< dS )EmbedsInputsz#Represents embeddings-based inputs.embedsr7   r$   N)r   r   r   r   r   r   r%   r&   r   r   r   r   r=      s   
 
r=   r$   c                 C   r9   )zSConstruct [`EmbedsInputs`][vllm.inputs.data.EmbedsInputs] from optional
    values.r>   )r7   r$   Nr   )r=   )r$   r   r:   r   r   r   embeds_inputs   r<   r?   DecoderOnlyInputsEncoderInputsDecoderInputsc                   @   r0   )EncoderDecoderInputsa	  
    A processed pair of encoder and decoder singleton prompts.
    [`InputPreprocessor`][vllm.inputs.preprocess.InputPreprocessor]
    which can be passed to
    [`InputProcessor`][vllm.v1.engine.input_processor.InputProcessor]
    for encoder-decoder models.
    encoderdecoderN)r   r   r   r   rA   r   rB   r   r   r   r   rC     s   
 rC   ProcessorInputsSingletonInputsc                   @   s*   e Zd ZU dZeed< dZedB ed< dS )StreamingInputzInput data for a streaming generation request.

    This is used with generate() to support multi-turn streaming sessions
    where inputs are provided via an async generator.
    r   Nsampling_params)r   r   r   r   r/   r   rI   r	   r   r   r   r   rH   /  s   
 rH   )N)0dataclassesr   typingr   r   r   r   r%   typing_extensionsr   r   vllm.sampling_paramsr	   vllm.multimodal.inputsr
   r   r   r   objectr   r   r   r#   r   r!   r"   r'   r   r(   r)   r*   r-   r.   r/   r1   r4   r5   r;   r=   r&   r?   r@   rA   rB   rC   rF   rG   rH   r   r   r   r   <module>   sz   #
		

			