
    .`i                        d dl Z d dlZ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mZ d dlm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 d dlmZmZ d dlmZ  ee           Z!de	defdZ"de	dedz  fdZ#de	defdZ$ e            Z%e%&                    d ee          gej'        j(        ddi iiej)        j(        deiej*        j(        deiej+        j(        deii          eedede	fd                                    Z,defdZ-dS )    N)
HTTPStatus)	APIRouterDependsFastAPIHTTPExceptionRequestResponse)JSONResponseStreamingResponse)EngineClient)ErrorResponse)validate_json_request)GenerateRequestGenerateResponse)ServingTokens)OpenAIServingTokenization)load_aware_callwith_cancellation)init_loggerrequestreturnc                 $    | j         j        j        S N)appstateopenai_serving_tokenizationr   s    |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/serve/disagg/api_router.pytokenizationr   "   s    ;88    c                 $    | j         j        j        S r   )r   r   serving_tokensr   s    r   generate_tokensr#   &   s    ;++r    c                 $    | j         j        j        S r   )r   r   engine_clientr   s    r   r%   r%   *   s    ;**r    z/inference/v1/generatecontenttext/event-streammodel)dependencies	responsesraw_requestc                   K   t          |          }|#t          |                              d          S 	 |                    | |           d {V }n,# t          $ r}|                    |          cY d }~S d }~ww xY wt          |t                    r-t          |                                |j	        j
                  S t          |t                    r"t          |                                          S t          |d          S )Nz.The model does not support generate tokens API)message)r&   status_code)r&   r'   )r&   
media_type)r#   r   create_error_responseserve_tokens	Exception
isinstancer   r
   
model_dumperrorcoder   r   )r   r+   handler	generatores        r   generater:   1   s9      k**GK((>>D ? 
 
 	
0!..wDDDDDDDD		 0 0 0,,Q////////0 )]++ <((**	8L
 
 
 	
 
I/	0	0 <I$8$8$:$:;;;;Y;NOOOOs   A 
A>A93A>9A>r   c                     t          | j        j        dd          r+t                              d          dt
          fd            }|                     t                     d S )Ntokens_onlyFz/abort_requestsr+   c                   K   	 |                                   d{V }n;# t           j        $ r)}t          t          j        j        d|           |d}~ww xY w|                    d          }| t          t          j        j        d          t          j        t          |           
                    |                     t          d          S )zq
            Abort one or more requests. To be used in a
            Disaggregated Everything setup.
            NzJSON decode error: )r.   detailrequest_idsz%Missing 'request_ids' in request body   )r.   )jsonJSONDecodeErrorr   r   BAD_REQUESTvaluegetasynciocreate_taskr%   abortr	   )r+   bodyr9   r?   s       r   abort_requestsz%attach_router.<locals>.abort_requestsV   s      (--////////'   # * 6 <444   
 ((=11K"# * 6 <B   
 k : : @ @ M MNNN,,,,s    A$AA)getattrr   argsrouterpostr   include_router)r   rJ   s     r   attach_routerrP   S   si    sy~}e44 -	&	'	'	-g 	- 	- 	- 
(	'	-, vr    ).rF   rA   httpr   fastapir   r   r   r   r   r	   fastapi.responsesr
   r   vllm.engine.protocolr   'vllm.entrypoints.openai.engine.protocolr   vllm.entrypoints.openai.utilsr   &vllm.entrypoints.serve.disagg.protocolr   r   %vllm.entrypoints.serve.disagg.servingr   'vllm.entrypoints.serve.tokenize.servingr   vllm.entrypoints.utilsr   r   vllm.loggerr   __name__loggerr   r#   r%   rM   rN   OKrD   rC   	NOT_FOUNDINTERNAL_SERVER_ERRORr:   rP    r    r   <module>rb      s  
         Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q = = = = = = = = - - - - - -      @ ? ? ? ? ?             N M M M M M        $ # # # # #	X		9' 9&? 9 9 9 9,W ,)= , , , ,+7 +| + + + + 
 '/001i*=r)BC$w&>"Wm$<(.-0H	  	 	 PO P' P P P  	 	P,w      r    