o
    -i                     @   s  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
mZ 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 eeZe Zd
edefddZd
edefddZej d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deeded
eee f fddZ&ej d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deed
eee f defddZ'defddZ(dS )    )
HTTPStatus)	Annotated)	APIRouterFastAPIFormRequest)JSONResponseStreamingResponse)ErrorResponse)TranscriptionRequestTranscriptionResponseVariantTranslationRequestTranslationResponseVariant)OpenAIServingTranscriptionOpenAIServingTranslation)load_aware_callwith_cancellation)init_loggerrequestreturnc                 C   
   | j jjS N)appstateopenai_serving_transcriptionr    r   l/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/entrypoints/openai/translations/api_router.pytranscription!      
r   c                 C   r   r   )r   r   openai_serving_translationr   r   r   r   translation%   r   r!   z/v1/audio/transcriptionscontenttext/event-streammodel)	responsesraw_requestc              
      s   t | }|d u r| jjj}|jddS |j I d H }z|||| I d H }W n ty? } z||W  Y d }~S d }~ww t	|t
rOt| |jjdS t	|tr[t| dS t|ddS )Nz-The model does not support Transcriptions APImessager"   status_coder"   r#   r"   
media_type)r   r   r   openai_serving_tokenizationcreate_error_responsefilereadcreate_transcription	Exception
isinstancer
   r   
model_dumperrorcoder   r	   )r&   r   handlerbase_server
audio_data	generatorer   r   r   create_transcriptions)   s*   


r=   z/v1/audio/translationsc              
      s   t |}|d u r|jjj}|jddS | j I d H }z||| |I d H }W n ty? } z||W  Y d }~S d }~ww t	|t
rOt| |jjdS t	|tr[t| dS t|ddS )Nz+The model does not support Translations APIr'   r)   r+   r#   r,   )r!   r   r   r.   r/   r0   r1   create_translationr3   r4   r
   r   r5   r6   r7   r   r	   )r   r&   r8   r9   r:   r;   r<   r   r   r   create_translationsN   s*   


r?   r   c                 C   s   |  t d S r   )include_routerrouter)r   r   r   r   attach_routert   s   rB   N))httpr   typingr   fastapir   r   r   r   fastapi.responsesr   r	   'vllm.entrypoints.openai.engine.protocolr
   -vllm.entrypoints.openai.translations.protocolr   r   r   r   ,vllm.entrypoints.openai.translations.servingr   r   vllm.entrypoints.utilsr   r   vllm.loggerr   __name__loggerrA   r   r!   postOKvalueBAD_REQUESTUNPROCESSABLE_ENTITYINTERNAL_SERVER_ERRORr=   r?   rB   r   r   r   r   <module>   sX   		