
    .`i                         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 d dlmZmZmZmZmZ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  ee          Z G d de          Z  G d de          Z!dS )    )AsyncGenerator)Request)EngineClient)RequestLogger)ErrorResponseRequestResponseMetadata)OpenAIServingModels)
TranscriptionRequestTranscriptionResponse!TranscriptionResponseStreamChoiceTranscriptionResponseVerboseTranscriptionStreamResponseTranslationRequestTranslationResponseTranslationResponseStreamChoiceTranslationResponseVerboseTranslationStreamResponse)OpenAISpeechToText)init_logger)RequestOutputc                        e Zd ZdZdddddedededz  ded	ed
ef fdZde	de
dedeez  eedf         z  ez  fdZde
deeedf                  dedededeedf         fdZ xZS )OpenAIServingTranscriptionzHandles transcription requests.Freturn_tokens_as_token_idslog_error_stackenable_force_include_usageengine_clientmodelsrequest_loggerNr   r   r   c          	      X    t                                          ||||d||           d S )N
transcriber   r   r   r   	task_typer   r   super__init__selfr   r   r   r   r   r   	__class__s          /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/openai/translations/serving.pyr&   z#OpenAIServingTranscription.__init__$   sE     	')'A"+'A 	 	
 	
 	
 	
 	
    
audio_datarequestraw_requestreturnc                 ~   K   |                      ||||j        dk    rt          nt          | j                   d{V S )zTranscription API similar to OpenAI's API.

        See https://platform.openai.com/docs/api-reference/audio/createTranscription
        for the API specification. This API mimics the OpenAI transcription API.
        verbose_jsonr,   r-   r.   response_classstream_generator_methodN)_create_speech_to_textresponse_formatr   r   transcription_stream_generatorr(   r,   r-   r.   s       r*   create_transcriptionz/OpenAIServingTranscription.create_transcription8   sm       00!# *n<< -,*$($G 1 

 

 

 

 

 

 

 

 
	
r+   result_generator
request_idrequest_metadataaudio_duration_sc           
     x   K   |                      |||||dt          t                    }|2 3 d {V }|W V  6 d S )Nztranscription.chunkr-   list_result_generatorr;   r<   r=   chunk_object_typeresponse_stream_choice_classstream_response_class) _speech_to_text_stream_generatorr   r   r(   r-   r:   r;   r<   r=   	generatorchunks           r*   r7   z9OpenAIServingTranscription.transcription_stream_generatorQ   sz       99"2!--3)J"= : 	
 	
	 % 	 	 	 	 	 	 	%KKKKK %99   9)__name__
__module____qualname____doc__r   r	   r   boolr&   bytesr
   r   r   r   r   strr   r9   listr   r   floatr7   __classcell__r)   s   @r*   r   r   !   sV       )) ,1 %+0
 
 
#
 $

 &,
 %)
 
 %)
 
 
 
 
 
(

*>
MT
 	
&	'
d
#	$ 	
 
 
 
2% ~mT.ABC 	
 2   
T		"       r+   r   c                        e Zd ZdZdddddedededz  ded	ed
ef fdZde	de
dedeez  eedf         z  ez  fdZde
deeedf                  dedededeedf         fdZ xZS )OpenAIServingTranslationzHandles translation requests.Fr   r   r   r   Nr   r   r   c          	      X    t                                          ||||d||           d S )N	translater"   r$   r'   s          r*   r&   z!OpenAIServingTranslation.__init__j   sE     	')'A!+'A 	 	
 	
 	
 	
 	
r+   r,   r-   r.   r/   c                 ~   K   |                      ||||j        dk    rt          nt          | j                   d{V S )zTranslation API similar to OpenAI's API.

        See https://platform.openai.com/docs/api-reference/audio/createTranslation
        for the API specification. This API mimics the OpenAI translation API.
        r1   r2   N)r5   r6   r   r   translation_stream_generatorr8   s       r*   create_translationz+OpenAIServingTranslation.create_translation~   sm       00!# *n<< +*($($E 1 

 

 

 

 

 

 

 

 
	
r+   r:   r;   r<   r=   c           
     x   K   |                      |||||dt          t                    }|2 3 d {V }|W V  6 d S )Nztranslation.chunkr?   )rD   r   r   rE   s           r*   rY   z5OpenAIServingTranslation.translation_stream_generator   sz       99"2!--1)H"; : 	
 	
	 % 	 	 	 	 	 	 	%KKKKK %99rH   )rI   rJ   rK   rL   r   r	   r   rM   r&   rN   r   r   r   r   r   rO   r   rZ   rP   r   r   rQ   rY   rR   rS   s   @r*   rU   rU   g   sV       '' ,1 %+0
 
 
#
 $

 &,
 %)
 
 %)
 
 
 
 
 
(

*<
KR
 	
$	%
d
#	$ 	
 
 
 
2# ~mT.ABC 	
 2   
T		"       r+   rU   N)"collections.abcr   fastapir   vllm.engine.protocolr   vllm.entrypoints.loggerr   'vllm.entrypoints.openai.engine.protocolr   r   &vllm.entrypoints.openai.models.servingr	   -vllm.entrypoints.openai.translations.protocolr
   r   r   r   r   r   r   r   r   r   3vllm.entrypoints.openai.translations.speech_to_textr   vllm.loggerr   vllm.outputsr   rI   loggerr   rU    r+   r*   <module>rh      s   + * * * * *       - - - - - - 1 1 1 1 1 1        G F F F F F                        S R R R R R # # # # # # & & & & & &	X		C C C C C!3 C C CLC C C C C1 C C C C Cr+   