
    .`i                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
Zd dlZd dlmZ erd dlmZ neZej        Zej        ej        ej        ej        ej        dZdddd	d	dZej        ej        ej        ej        ej        dZej        ej        ej        ej        ej        dZg d
Ze	d         Ze	d
         Ze	d         Z dej!        de"fdZ#dej!        dedede$fdZ%de$de&e'df         dededej!        f
dZ(dede dedede)e*         e"z  e$z  f
dZ+e G d d                      Z,dedede&e'df         de'fdZ-de)e         dedefdZ.d e)e,         d!e$de)ej!                 fd"Z/dS )#    N)	dataclass)TYPE_CHECKINGAnyLiteral)assert_never)PoolingRequestOutput)float32float16bfloat16fp8_e4m3fp8_e5m2         )nativebiglittle)floatbase64bytes
bytes_onlyxreturnc                 "   t          j                    5 }t          j        | |           |                    d           |                                }d d d            n# 1 swxY w Y   t          j        |                              d          S )Nr   utf-8)	ioBytesIOtorchsaveseekreadr   	b64encodedecode)r   bufbinary_datas      k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/utils/serial_utils.pytensor2base64r'   D   s    	 !
1chhjj! ! ! ! ! ! ! ! ! ! ! ! ! ! !
 K((//888s   ?AA#&A#tensorembed_dtype
endiannessc                    t          | t          j                  sJ |t          v sJ |t          v sJ t          |         }t
          |         }|                     |                                                                          	                    |          
                                }|dk    r|t          k    r|                                }|                                S )Nr   )
isinstancer   TensorEMBED_DTYPE_TO_TORCH_DTYPE
ENDIANNESSEMBED_DTYPE_TO_TORCH_DTYPE_VIEWtoflatten
contiguousviewnumpysys_byteorderbyteswaptobytes)r(   r)   r*   torch_dtypetorch_view_dtypenp_arrays         r&   tensor2binaryr<   M   s     fel+++++44444####,[9K6{C 			+&&((3355::;KLLRRTT  X*"="=$$&&    binaryshape.c                 b   |t           v sJ |t          v sJ |t          v sJ t           |         }t          |         }t          j        | |                              |          }|dk    r|t          k    r|                                }t          j	        |          
                    |          S )N)dtyper   )r.   EMBED_DTYPE_TO_NUMPY_DTYPE_VIEWr/   np
frombufferreshaper6   r7   r   
from_numpyr4   )r>   r?   r)   r*   r9   np_dtyper;   s          r&   binary2tensorrH   a   s     4444499999####,[9K.{;H}V8444<<UCCHX*"="=$$&&H%%**;777r=   outputencoding_formatc                 J   |dk    r| j         j                                        S |dk    rBt          | j         j        ||          }t	          j        |                              d          S |dk    s|dk    rt          | j         j        ||          S t          |           d S )Nr   r   r   r   r   )outputsdatatolistr<   r   r"   r#   r   )rI   rJ   r)   r*   embedding_bytess        r&   encode_pooling_outputrP   v   s     '!!~"))+++	H	$	$'(;[*UU0077@@@	G	#	#,'F'FV^0+zJJJ!!!!!r=   c                   \    e Zd ZU eed<   eed<   eed<   eed<   eed<   eedf         ed<   dS )	MetadataItemindexr)   r*   startend.r?   N)__name__
__module____qualname__int__annotations__
EmbedDType
Endiannesstuple r=   r&   rR   rR      sY         JJJJJJ	HHHc?r=   rR   	n_requestc                      t                     t          j                   fdt          |          D             }|S )Nc           
      X    g | ]&}t          ||z  z  |d z   z  z            'S )r   rS   r)   r*   rT   rU   r?   )rR   ).0ir)   r*   n_bytesr?   sizes     r&   
<listcomp>z(build_metadata_items.<locals>.<listcomp>   sb     
 
 
  	#!d(W$Q$(	
 	
 	

 
 
r=   )EMBED_DTYPE_TO_N_BYTESmathprodrange)r)   r*   r?   r_   itemsre   rf   s   ```  @@r&   build_metadata_itemsrm      so     %[1G9UD
 
 
 
 
 
 
 
 y!!
 
 
E Lr=   pooling_outputsc                 l   d}g }g }d}t          |           D ]\  }}t          |j        j        ||          }	t	          |	          }
||||||
z   |j        j        j        d}|                    |	           |                    |           |j        }|t	          |          z  }||
z  }||d}|||fS )Nr   )r(   r)   r*   rb   )prompt_tokenstotal_tokens)	enumerater<   rL   rM   lenr?   appendprompt_token_ids)rn   r)   r*   num_prompt_tokensrl   bodyoffsetidxrI   r>   rf   itemru   usages                 r&   encode_pooling_bytesr|      s    
 +-EDF 11  V>&#!
 
 

 6{{ &$D=^(.
 
 	FT!2S!1222$ +) E r=   rl   rw   c                     |                      d            g }| D ]L}||j        |j                 }t          ||j        |j        |j                  }|                    |           M|S )Nc                     | j         S )N)rS   )r   s    r&   <lambda>z'decode_pooling_output.<locals>.<lambda>   s    QW r=   )key)sortrT   rU   rH   r?   r)   r*   rt   )rl   rw   tensor_listrz   r>   r(   s         r&   decode_pooling_outputr      sx    	JJ$$J%%%&(K # #dj48+,vtz43CT_UU6""""r=   )0r   r   ri   sysdataclassesr   typingr   r   r   r5   rC   r   typing_extensionsr   vllmr   	byteorderr6   r	   r
   r   float8_e4m3fnfloat8_e5m2r.   rh   uint8r0   rB   r/   r[   r\   EncodingFormatr-   strr'   r   r<   r]   rY   rH   listr   rP   rR   rm   r|   r   r^   r=   r&   <module>r      sR    				  



 ! ! ! ! ! ! . . . . . . . . . .      * * * * * * ))))))) }}
 #!
 
     }}# #  zz
# #  )((
MN
./
AB9U\ 9c 9 9 9 9L'1?I
   (88c?8 8 	8
 \8 8 8 8*" "#" " 	"
 
%[3" " " "          c? 	   .$./$$ $ $ $ $Nl!3 5 T%,EW      r=   