o
    )i                     @   s  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 G dd deZG d	d
 d
eZedeeee f dee fddZedeee eee  f dee fddZdeeee ee eee  f deee ee f 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eeef Z ededefddZ!ededefddZ!ededefddZ!ededefddZ!dede fddZ!dede
e fdd Z"d!ede#ee ef fd"d#Z$d$S )%    )Sequence)LiteralOptional	TypedDictUnioncastoverload)TypeIs)
is_list_of   )EmbedsPromptExplicitEncoderDecoderPromptProcessorInputs
PromptTypeSingletonInputsSingletonPrompt
TextPromptTokensPromptc                   @   s"   e Zd ZU eed< ed ed< dS )
ParsedTextcontentF	is_tokensN)__name__
__module____qualname__str__annotations__r    r   r   ]/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/inputs/parse.pyr      s   
 r   c                   @   s&   e Zd ZU ee ed< ed ed< dS )ParsedTokensr   Tr   N)r   r   r   listintr   r   r   r   r   r   r      s   
 r   promptreturnc                 C      d S Nr   r!   r   r   r   parse_and_batch_prompt      r&   c                 C   r#   r$   r   r%   r   r   r   r&      r'   c                 C   s   t | trt| ddgS t | trit| dkrtdt| tr.ttt | } dd | D S t| trAttt | } t	| ddgS t| tritttt  | } t| d dkr[tdt| d tridd | D S t
d	)
NFr   r   r   z"please provide at least one promptc                 S      g | ]}t |d dqS )Fr(   )r   .0elemr   r   r   
<listcomp>3   s    z*parse_and_batch_prompt.<locals>.<listcomp>Tc                 S   r)   )Tr(   )r   r*   r   r   r   r-   A   s    
zTprompt must be a string, array of strings, array of tokens, or array of token arrays)
isinstancer   r   r   len
ValueErrorr
   r   r    r   	TypeErrorr%   r   r   r   r&   %   s,   




c                   @   "   e Zd ZU ed ed< eed< dS )ParsedStrPromptr   typer   N)r   r   r   r   r   r   r   r   r   r   r3   J      
 r3   c                   @   r2   )ParsedTextPrompttextr4   r   N)r   r   r   r   r   r   r   r   r   r   r6   O   r5   r6   c                   @   r2   )ParsedTokensPrompttokensr4   r   N)r   r   r   r   r   r   r   r   r   r   r8   T   r5   r8   c                   @   r2   )ParsedEmbedsPromptembedsr4   r   N)r   r   r   r   r   r   r   r   r   r   r:   Y   r5   r:   c                 C   r#   r$   r   r%   r   r   r   parse_singleton_promptb      r<   c                 C   r#   r$   r   r%   r   r   r   r<   g   r=   c                 C   r#   r$   r   r%   r   r   r   r<   l   r=   c                 C   r#   r$   r   r%   r   r   r   r<   q   r=   c                 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   )r4   r   Zprompt_embedsr;   Zprompt_token_idsr9   r!   r7   zBinputs must be a string, TextPrompt, TokensPrompt, or EmbedsPrompt)r.   r   r3   dictr:   r8   r6   r1   r%   r   r   r   r<   v   s    

c                 C   s   t | tod| v S )NZencoder_prompt)r.   r>   r%   r   r   r   "is_explicit_encoder_decoder_prompt   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_inputs   s
   rC   N)%collections.abcr   typingr   r   r   r   r   r   Ztyping_extensionsr	   Z
vllm.utilsr
   datar   r   r   r   r   r   r   r   r   r   r   r   r&   r    r3   r6   r8   r:   ZParsedSingletonPromptr<   r?   tuplerC   r   r   r   r   <module>   sd    (
%
