
    -`i}                     n    d Z ddlmZ ddlmZmZ ddlZerddlmZ neZe G d d                      Z	dS )z!Sequence and its related classes.    )	dataclass)TYPE_CHECKINGAnyN)KVConnectorOutputc                       e Zd ZU dZeeej        f         ed<   e	dz  ed<   	 ddeeej        f         de	dz  ddfdZ
deez  fdZded	ej        fd
Zd Zd ZdefdZdefdZdS )IntermediateTensorsa  For all pipeline stages except the last, we need to return the hidden
    states and residuals to be sent to the next stage. This data structure
    contains the hidden states and residuals for a request.

    Each stage also needs to handle its own kv_connector_output.
    tensorsNkv_connector_outputreturnc                 "    || _         || _        d S N)r	   r
   )selfr	   r
   s      a/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/sequence.py__init__zIntermediateTensors.__init__   s     #6       keyc                     t          t                    r| j                 S t          t                    r8|                     fd| j                                        D                       S d S )Nc                 (    i | ]\  }}||         S  r   ).0kvr   s      r   
<dictcomp>z3IntermediateTensors.__getitem__.<locals>.<dictcomp>-   s#    "N"N"NA1af"N"N"Nr   )
isinstancestrr	   slice	__class__items)r   r   s    `r   __getitem__zIntermediateTensors.__getitem__)   sw    c3 	P<$$U## 	P>>"N"N"N"N9K9K9M9M"N"N"NOOO	P 	Pr   valuec                     || j         |<   d S r   r	   )r   r   r    s      r   __setitem__zIntermediateTensors.__setitem__/   s    !Sr   c                 4    | j                                         S r   )r	   r   r   s    r   r   zIntermediateTensors.items2   s    |!!###r   c                 *    t          | j                  S r   )lenr	   r%   s    r   __len__zIntermediateTensors.__len__5   s    4<   r   otherc                      t           j                  sdS  j                                        j                                        k    rdS t	           fd j        D                       S )NFc              3   n   K   | ]/}t          j        j        |         j        |                   V  0d S r   )torchequalr	   )r   r   r)   r   s     r   	<genexpr>z-IntermediateTensors.__eq__.<locals>.<genexpr>=   s<      XXa5;t|Aa0@AAXXXXXXr   )r   r   r	   keysall)r   r)   s   ``r   __eq__zIntermediateTensors.__eq__8   sq    %00 	5<%-"4"4"6"6665XXXXX4<XXXXXXr   c                     d| j          dS )NzIntermediateTensors(tensors=)r"   r%   s    r   __repr__zIntermediateTensors.__repr__?   s    =dl====r   r   )__name__
__module____qualname____doc__dictr   r,   Tensor__annotations__r   r   r   r   r#   r   r(   objectr1   r4   r   r   r   r   r      s7          #u|#$$$$*T1111
 9=
7 
7c5<'(
7 /5
7 
	
7 
7 
7 
7PsU{ P P P P"s "5< " " " "$ $ $! ! !YF Y Y Y Y># > > > > > >r   r   )
r8   dataclassesr   typingr   r   r,   .vllm.v1.worker.kv_connector_model_runner_mixinr   r   r   r   r   <module>r@      s    ( ' ! ! ! ! ! ! % % % % % % % %  PPPPPPP .> .> .> .> .> .> .> .> .> .>r   