
    &`i+                         d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlZ	d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ  edd	d
          Z G d dej                  Z G d d          Z G d de          ZdS )    N)TupleUnion)ActorHandle)
RuntimeEnv)	Blackholerun_throughput_benchmark)PayloadPydantic)DeploymentHandlehttpdebug)
GRPC_TRACEGRPC_VERBOSITY)env_varsc                       e Zd ZdZdZdS )IOModeSYNCASYNCN)__name__
__module____qualname__r   r        /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/serve/_private/benchmarks/streaming/common.pyr   r      s        DEEEr   r   c                   &    e Zd ZdefdZd Zd ZdS )Endpointtokens_per_requestc                     || _         t          j        d                              t          j                   t          j        d                              t          j                   d S Nrayz	ray.serve)_tokens_per_requestlogging	getLoggersetLevelWARNING)selfr   s     r   __init__zEndpoint.__init__   sR    #5 %  ))'/:::+&&//@@@@@r   c           
   #      K   t          dd t          dd          D             t          t          dd                    t          j                    d          }t          | j                  D ]}|V  d S )NTest outputc                 ,    g | ]}t          |          S r   float.0fs     r   
<listcomp>z#Endpoint.stream.<locals>.<listcomp>$       444E!HH444r      d   Success!textfloatsintstsreasonr	   rangelisttimer    r%   payloadis      r   streamzEndpoint.stream!   s      !44eAsmm444eAsmm$$y{{
 
 
 t/00 	 	AMMMM	 	r   c           
        K   t          dd t          dd          D             t          t          dd                    t          j                    d          }t          | j                  D ]}|W V  d S )Nr(   c                 ,    g | ]}t          |          S r   r*   r,   s     r   r/   z'Endpoint.aio_stream.<locals>.<listcomp>0   r0   r   r1   r2   r3   r4   r:   r>   s      r   
aio_streamzEndpoint.aio_stream-   s      !44eAsmm444eAsmm$$y{{
 
 
 t/00 	 	AMMMMM	 	r   N)r   r   r   intr&   rA   rD   r   r   r   r   r      sR        A3 A A A A
 
 

 
 
 
 
r   r   c                       e Zd Zdeeef         dededededefdZ	d Z
ej        d	             Zd
 Zd Zdeeef         fdZdS )Caller
downstreammoder   
batch_size
num_trialstrial_runtimec                ,   || _         || _        || _        || _        || _        || _        g | _        t          j        d          	                    t          j
                   t          j        d          	                    t          j
                   d S r   )_h_moder    _batch_size_num_trials_trial_runtime
_durationsr!   r"   r#   r$   )r%   rH   rI   r   rJ   rK   rL   s          r   r&   zCaller.__init__;   s     
#5 %%+ 	%  ))'/:::+&&//@@@@@r   c                     | j         t          j        k    r| j        j        S | j         t          j        k    r| j        j        S t          d| j          d          )NzStreaming mode not supported ())rO   r   r   rN   rA   r   rD   NotImplementedErrorr%   s    r   _get_remote_methodzCaller._get_remote_methodQ   sQ    :$$7>!Z6<''7%%%&Ttz&T&T&TUUUr   c                 
   K   d S )Nr   rW   s    r   _consume_single_streamzCaller._consume_single_streamY   s      r   c                     K   t          j         fdt           j                  D               d {V } j                            |           d S )Nc                 D    g | ]}                     j                  S r   )_executerZ   )r-   _r%   s     r   r/   z+Caller._do_single_batch.<locals>.<listcomp>_   s8        d9::  r   )asynciogatherr;   rP   rS   extend)r%   	durationss   ` r   _do_single_batchzCaller._do_single_batch]   s      !.   t/00  
 
 
 
 
 
 
	 	y)))))r   c                    K   t          j                    } |             d {V  t          j                    |z
  }|dz  S )Ni  )r=   	monotonic)r%   fnstartdur_ss       r   r]   zCaller._executeg   sF        bdd






  5(t|r   returnc                    K   t          | j        | j        | j        z  | j        | j                  }| d {V }t          j        | j        g d          \  }}}t          d| d| d|            |S )N)rf   
multiplierrK   rL   )2   K   c   z#Individual request quantiles:
	P50=z
	P75=z
	P99=)
r   rc   rP   r    rQ   rR   np
percentilerS   print)r%   corototal_runtimep50p75p99s         r   run_benchmarkzCaller.run_benchmarkm   s      '$'$*BB'-	
 
 
 #





do|||DDS#UcUU3UUPSUUVVVr   N)r   r   r   r   r   r
   r   rE   r+   r&   rX   abcabstractmethodrZ   rc   r]   r   rw   r   r   r   rG   rG   :   s        A+'778A 	A
  A A A A A A A,V V V 	  * * *  U5%<%8      r   rG   )rx   r_   enumr!   r=   typingr   r   numpyro   	ray.actorr   ray.runtime_envr   $ray.serve._private.benchmarks.commonr   r   2ray.serve._private.benchmarks.serialization.commonr	   ray.serve.handler
   GRPC_DEBUG_RUNTIME_ENVEnumr   r   rG   r   r   r   <module>r      sk   



                 ! ! ! ! ! ! & & & & & & T T T T T T T T N N N N N N - - - - - -#"g>>   
    TY   
       @A A A A AY A A A A Ar   