
    -`i	                         d dl Z d dlZd dlZd dlZd dlmZ de j        deee	f         deeef         de	fdZ
 G d d	ej                  Zd
ede	ddfdZdS )    N)Anyargsmetrics
extra_inforeturnc                    g }t           j                            dd          s|S |                                D ]\  }}ddt	          |           idd| j        i|||dd}|d	         d
         d                             d          }|s!d|v r|d         |d	         d
         d         d<   |                    |           |S )z
    Save the benchmark results in the format used by PyTorch OSS benchmark with
    on metric per record
    https://github.com/pytorch/pytorch/wiki/How-to-integrate-with-PyTorch-OSS-benchmark-database
     SAVE_TO_PYTORCH_BENCHMARK_FORMATFzvLLM benchmarkr   )namer   r
   )r
   benchmark_valuesr   )	benchmarkmodelmetricr   r   tensor_parallel_size)osenvirongetitemsvarsr   append)r   r   r   recordsr
   r   recordtps           m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/benchmarks/lib/utils.py#convert_to_pytorch_benchmark_formatr      s	    G:>><eDD ")--//   )DJJ  
 $4( 
 
" K .v6::;QRR 	,
::12 ;-f56LM 	vN    c                   4     e Zd ZdefdZdedef fdZ xZS )
InfEncoderoc                     t          |t                    r  fd|                                D             S t          |t                    r fd|D             S t          |t                    rt          j        |          rdS |S )Nc                     i | ]`\  }}t          |t          t          t          t          t          d           f          st          |          n|                    |          aS N)
isinstancestrintfloatbooltype	clear_inf).0kvselfs      r   
<dictcomp>z(InfEncoder.clear_inf.<locals>.<dictcomp>8   sj        Aq "!c3tT$ZZ%HIIAq))  r   c                 :    g | ]}                     |          S  )r(   )r)   r+   r,   s     r   
<listcomp>z(InfEncoder.clear_inf.<locals>.<listcomp>?   s%    111!DNN1%%111r   inf)r"   dictr   listr%   mathisinf)r,   r   s   ` r   r(   zInfEncoder.clear_inf6   s    a 
	    GGII	    4   	1111q11115!! 	djmm 	5r   r   c                 d     t                      j        |                     |          g|R i |S r!   )super
iterencoder(   )r,   r   r   kwargs	__class__s       r   r8   zInfEncoder.iterencodeD   s6    !uww!$.."3"3EdEEEfEEEr   )__name__
__module____qualname__r   r(   r8   __classcell__)r:   s   @r   r   r   5   sr        3    FC FS F F F F F F F F F Fr   r   filenamer   c                     t          | d          5 }t          j        ||t          d            d d d            d S # 1 swxY w Y   d S )Nwc                 2    dt          |           j         dS )N<z is not JSON serializable>)r'   r;   )r   s    r   <lambda>zwrite_to_json.<locals>.<lambda>N   s    N$q''"2NNN r   )clsdefault)openjsondumpr   )r?   r   fs      r   write_to_jsonrK   H   s    	h		 
	NN		
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   =AA)argparserH   r4   r   typingr   	Namespacer2   r#   r3   r   JSONEncoderr   rK   r/   r   r   <module>rP      s       				      '

''+CI'DHcN'	' ' ' 'TF F F F F! F F F&
C 
$ 
4 
 
 
 
 
 
r   