
    .`id                        d dl mZ d dlmZmZmZmZ d dl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 d d	lmZmZ d d
lmZ  ee          Z e            ZdZdededz  fd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%e                    d ee          ge&ej"        j!        deiej#        j!        deiej$        j!        deii          dedefd            Z'defdZ(dS )    )
HTTPStatus)	APIRouterDependsFastAPIRequest)JSONResponseStreamingResponse)ChatCompletionRequestChatCompletionResponse)OpenAIServingChat)ErrorResponse)metrics_header)validate_json_request)load_aware_callwith_cancellation)init_loggerzendpoint-load-metrics-formatrequestreturnNc                 $    | j         j        j        S N)appstateopenai_serving_chat)r   s    /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/openai/chat_completion/api_router.pychatr      s    ;00    z/v1/chat/completionscontenttext/event-streammodel)dependencies	responsesraw_requestc                 z  K   |j                             t          d          }t          |          }|'|j        j        j        }|                    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                     r0t          |                                t#          |                    S t%          |d          S )N /The model does not support Chat Completions APImessager   status_code)r   headersr   )r   
media_type)r*   get)ENDPOINT_LOAD_METRICS_FORMAT_HEADER_LABELr   r   r   openai_serving_tokenizationcreate_error_responsecreate_chat_completion	Exception
isinstancer   r   
model_dumperrorcoder   r   r	   )r   r"   metrics_header_formathandlerbase_server	generatores          r   r0   r0   "   su      (/3312  ;G!o+G00E 1 
 
 	
0!88+NNNNNNNN		 0 0 0,,Q////////0 )]++ 	
((**	8L
 
 
 	
 
I5	6	6 
((**"#899
 
 
 	

 Y;NOOOOs   A9 9
B"BB"B"z/v1/chat/completions/render)r    response_modelr!   c                   K   t          |          }|'|j        j        j        }|                    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          |          S )zaRender chat completion request and return conversation and engine
    prompts without generating.Nr%   r&   r(   )r   )r   r   r   r.   r/   render_chat_requestr1   r2   r   r   r3   r4   r5   )r   r"   r7   r8   resultr:   s         r   render_chat_completionr?   L   s       ;G!o+G00E 1 
 
 	
0227;;;;;;;; 0 0 0,,Q////////0 &-(( XF$5$5$7$7V\EVWWWW''''s   A 
B"A<6B<Br   c                 :    |                      t                     d S r   )include_routerrouter)r   s    r   attach_routerrC   k   s    vr   ))httpr   fastapir   r   r   r   fastapi.responsesr   r	   0vllm.entrypoints.openai.chat_completion.protocolr
   r   /vllm.entrypoints.openai.chat_completion.servingr   'vllm.entrypoints.openai.engine.protocolr   $vllm.entrypoints.openai.orca_metricsr   vllm.entrypoints.openai.utilsr   vllm.entrypoints.utilsr   r   vllm.loggerr   __name__loggerrB   r-   r   postOKvalueBAD_REQUEST	NOT_FOUNDINTERNAL_SERVER_ERRORr0   listr?   rC    r   r   <module>rX      s  
       8 8 8 8 8 8 8 8 8 8 8 8 = = = = = = = =        N M M M M M A A A A A A ? ? ? ? ? ? ? ? ? ? ? ?        $ # # # # #	X			,J )1' 1/$6 1 1 1 1 '/001i*=r)BC$w&>"Wm$<(.-0H	  	 	 P*? Pg P P P  	 	P< !'/001$w&>"Wm$<(.-0H	  	 	(*? (g ( ( (	 	(*w      r   