o
    -ii                     @   s   d dl mZ d dl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mZ d dlmZ d d	lmZmZ e Zd
ededB fddZejdeegejjdeiejjdeiideed
edefddZdS )    )
HTTPStatus)	APIRouterDependsRequest)JSONResponseStreamingResponse)assert_never)ErrorResponse)validate_json_request)EmbeddingBytesResponseEmbeddingRequestEmbeddingResponse)OpenAIServingEmbedding)load_aware_callwith_cancellationrequestreturnNc                 C   s
   | j jjS )N)appstateopenai_serving_embedding)r    r   f/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/entrypoints/pooling/embed/api_router.py	embedding   s   
r   z/v1/embeddingsmodel)dependencies	responsesraw_requestc              
      s   t |}|d u r|jjj}|jddS z|| |I d H }W n ty6 } z||W  Y d }~S d }~ww t|trFt	|
 |jjdS t|trRt	|
 dS t|trat|j|j|jdS t| d S )Nz)The model does not support Embeddings API)message)contentstatus_code)r   )r   headers
media_type)r   r   r   openai_serving_tokenizationcreate_error_responsecreate_embedding	Exception
isinstancer	   r   
model_dumperrorcoder   r   r   r   r    r!   r   )r   r   handlerbase_server	generatorer   r   r   r$      s4   



r$   )httpr   fastapir   r   r   fastapi.responsesr   r   typing_extensionsr   'vllm.entrypoints.openai.engine.protocolr	   vllm.entrypoints.openai.utilsr
   'vllm.entrypoints.pooling.embed.protocolr   r   r   &vllm.entrypoints.pooling.embed.servingr   vllm.entrypoints.utilsr   r   routerr   postBAD_REQUESTvalueINTERNAL_SERVER_ERRORr$   r   r   r   r   <module>   s2   