
    .`im                        d dl mZ d dlmZmZmZ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 d dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZ  ee          ZdedefdZ e            Z e !                    d ee          gej"        j#        deiej$        j#        deiej%        j#        deiej&        j#        deii          ededefd                        Z'e !                    d ee          gej"        j#        deiej$        j#        deiej%        j#        deii          ededefd                        Z(defdZ)dS )    )
HTTPStatus)	APIRouterDependsFastAPIHTTPExceptionRequest)RequestValidationError)JSONResponse)assert_never)ErrorResponse)validate_json_request)DetokenizeRequestDetokenizeResponseTokenizeRequestTokenizeResponse)OpenAIServingTokenization)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/tokenize/api_router.pytokenizationr      s    ;88    z	/tokenizemodel)dependencies	responsesraw_requestc                   K   t          |          }	 |                    | |           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 )Ncontentstatus_coder$   )r   create_tokenize	Exceptioncreate_error_response
isinstancer   r
   
model_dumperrorcoder   r   r   r!   handler	generatores        r   tokenizer2   &   s      ;''G0!11';GGGGGGGG		 0 0 0,,Q////////0 )]++ <((**	8L
 
 
 	
 
I/	0	0 <I$8$8$:$:;;;;s   0 
AAAAz/detokenizec                 L  K   t          |          }	 |                    | |           d {V }nl# t          $ r$}t          t	          |          g          |d }~wt
          $ r3}t          t          j        j	        t	          |                    |d }~ww xY wt          |t                    r-t          |                                |j        j                  S t          |t                     r"t          |                                          S t#          |           d S )N)errors)r%   detailr#   r&   )r   create_detokenizeOverflowErrorr	   strr(   r   r   INTERNAL_SERVER_ERRORvaluer*   r   r
   r+   r,   r-   r   r   r.   s        r   
detokenizer;   C   sE      ;''G!33G[IIIIIIII		 = = =$SVVH5551<   "8>s1vv
 
 
	
 )]++ <((**	8L
 
 
 	
 
I1	2	2 <I$8$8$:$:;;;;s    0 
BAB&.BBr   c                     t          | j        j        dd          r,	 t                              d          dt
          fd            }|                     t                     d S )Nenable_tokenizer_info_endpointFz/tokenizer_infor!   c                    K   t          |                                            d{V }t          |                                t	          |t
                    r|j        j        nd          S )z(Get comprehensive tokenizer information.N   r#   )r   get_tokenizer_infor
   r+   r*   r   r,   r-   )r!   results     r   r@   z)attach_router.<locals>.get_tokenizer_infog   sx       (44GGIIIIIIIIF))++fm44FL--	   r   )getattrr   argsroutergetr   include_router)r   r@   s     r   attach_routerrG   c   sm    sy~?GG L	%	&	&	' 	 	 	 
'	&	 vr   N)*httpr   fastapir   r   r   r   r   fastapi.exceptionsr	   fastapi.responsesr
   typing_extensionsr   'vllm.entrypoints.openai.engine.protocolr   vllm.entrypoints.openai.utilsr   (vllm.entrypoints.serve.tokenize.protocolr   r   r   r   'vllm.entrypoints.serve.tokenize.servingr   vllm.entrypoints.utilsr   vllm.loggerr   __name__loggerr   rD   postBAD_REQUESTr:   	NOT_FOUNDr9   NOT_IMPLEMENTEDr2   r;   rG    r   r   <module>rZ      s  
       G G G G G G G G G G G G G G 5 5 5 5 5 5 * * * * * * * * * * * *      @ ? ? ? ? ?            N M M M M M      $ # # # # #	X		9' 9&? 9 9 9 9 
 '/001$w&>"Wm$<(.-0H"(7M*B	  	 	 O '    	 	$ '/001$w&>"Wm$<(.-0H    / g     ,w      r   