o
    -i1                     @   sx  U d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
 d dlmZ ddlmZmZmZmZmZmZmZmZ er=d dlZdeee B ee B eee  B d	ee ee B fd
d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B eB Zee d< ded	efddZ!ded	e
e fddZ"ded	e#edB ef fddZ$G dd deZ%ded	e%fddZ&dS )     )Sequence)TYPE_CHECKINGLiteral
NamedTuple	TypeAlias	TypedDictcast)TypeIs)
is_list_of   )EmbedsPromptExplicitEncoderDecoderPromptProcessorInputs
PromptTypeSingletonInputsSingletonPrompt
TextPromptTokensPromptNpromptreturnc                 C   s  t | trt| dgS t | trt| dkrtdt| tr-ttt | } dd | D S t| tr?ttt | } t	| dgS t| trt| dkr]t | d tr]t| d dkr]td| D ]}t |tsjt
dt|tsst
d	q_tttt  | } d
d | D S t
d)Nr   r   z"please provide at least one promptc                 S      g | ]}t |d qS )r   )r   .0elem r   N/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/inputs/parse.py
<listcomp>'       z%parse_raw_prompts.<locals>.<listcomp>prompt_token_idsr   z=prompt must be a list of lists, but found a non-list element.z2Nested lists of tokens must contain only integers.c                 S   r   )r   )r   r   r   r   r   r   =   r   zTprompt must be a string, array of strings, array of tokens, or array of token arrays)
isinstancestrr   listlen
ValueErrorr
   r   intr   	TypeError)r   r   r   r   r   parse_raw_prompts   s:   




*

r(   c                   @   "   e Zd ZU ed ed< eed< dS )ParsedStrPromptr"   typecontentN)__name__
__module____qualname__r   __annotations__r"   r   r   r   r   r*   E      
 r*   c                   @   r)   )ParsedTextPrompttextr+   r,   N)r-   r.   r/   r   r0   r   r   r   r   r   r2   J   r1   r2   c                   @   r)   )ParsedTokensPrompttokensr+   r,   N)r-   r.   r/   r   r0   r   r   r   r   r   r4   O   r1   r4   c                   @   r)   )ParsedEmbedsPromptembedsr+   r,   N)r-   r.   r/   r   r0   r   r   r   r   r   r6   T   r1   r6   ParsedSingletonPromptc                 C   sd   t | trtd| dS t | tr.d| v rtd| dS d| v r$td| dS d| v r.td| dS td	)
Nr"   )r+   r,   prompt_embedsr7   r    r5   r   r3   zBinputs must be a string, TextPrompt, TokensPrompt, or EmbedsPrompt)r!   r"   r*   dictr6   r4   r2   r'   r   r   r   r   parse_singleton_prompt^   s   

r;   c                 C   s   t | tod| v S )Nencoder_prompt)r!   r:   r   r   r   r   "is_explicit_encoder_decoder_prompto   s   r=   inputsc                 C   s(   d| v rd| v r| d | d fS d | fS )Nencoderdecoderr   )r>   r   r   r   split_enc_dec_inputsu   s
   rA   c                   @   s>   e Zd ZU dZedB ed< dZee dB ed< dZ	ded< dS )PromptComponentsNr3   	token_idsztorch.Tensor | Noner7   )
r-   r.   r/   r3   r"   r0   rC   r#   r&   r7   r   r   r   r   rB      s   
 rB   c                 C   sJ   t | tr
t| dS | d }rt|S t| d| d| ddS )N)r3   r<   r   r    r9   )r3   rC   r7   )r!   r"   rB   getget_prompt_components)r   r<   r   r   r   rE      s   

rE   )'collections.abcr   typingr   r   r   r   r   r   typing_extensionsr	   vllm.utils.collection_utilsr
   datar   r   r   r   r   r   r   r   torchr"   r#   r&   r(   r*   r2   r4   r6   r8   r0   r;   r=   tuplerA   rB   rE   r   r   r   r   <module>   s>    (
,


