o
    i                     @   s   d dl mZ d dlmZ er-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 neZeZded	ed
 fddZdddddddedB d	ed
 f
ddZdS )    )TYPE_CHECKING)FastAPI)	Namespace)State)EngineClient)RequestLogger)SupportedTaskappsupported_tasks)r   .c                    s   ddl m} | | d v rddlm} | | d v r)ddlm} | | t fdddD rAddlm} | | d S d S )Nr   )routerclassifyembedc                 3       | ]}| v V  qd S N .0tr
   r   W/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/entrypoints/pooling/__init__.py	<genexpr>,       z/register_pooling_api_routers.<locals>.<genexpr>)scorer   token_embed)+vllm.entrypoints.pooling.pooling.api_routerr   include_router,vllm.entrypoints.pooling.classify.api_router)vllm.entrypoints.pooling.embed.api_routerany)vllm.entrypoints.pooling.score.api_router)r	   r
   pooling_routerclassify_routerembed_routerscore_routerr   r   r   register_pooling_api_routers   s   


r$   engine_clientr   stater   argsr   request_loggerNc              	      s   ddl m} ddlm} ddlm} ddlm} ddlm	}	 ddl
m}
 ||j}t fdd	|
D rC|| |j|||j|j|jd
nd |_d v rY|| |j|||j|j|jd
nd |_d v ro|| |j|||j|j|jd
nd |_t fdd	dD r|	| |j|||jd|_d S d |_d S )Nr   )load_chat_template)ServingClassification)OpenAIServingEmbedding)OpenAIServingPooling)ServingScores)POOLING_TASKSc                 3   r   r   r   r   r   r   r   r   N   r   z%init_pooling_state.<locals>.<genexpr>)r(   chat_templatechat_template_content_formattrust_request_chat_templatelog_error_stackr   r   c                 3   r   r   r   r   r   r   r   r   w   r   )r   r   r   )r(   score_templater2   )vllm.entrypoints.chat_utilsr)   )vllm.entrypoints.pooling.classify.servingr*   &vllm.entrypoints.pooling.embed.servingr+   (vllm.entrypoints.pooling.pooling.servingr,   &vllm.entrypoints.pooling.score.servingr-   
vllm.tasksr.   r/   r   openai_serving_modelsr0   r1   r2   openai_serving_poolingopenai_serving_embeddingopenai_serving_classificationopenai_serving_scores)r%   r&   r'   r(   r
   r)   r*   r+   r,   r-   r.   resolved_chat_templater   r   r   init_pooling_state2   sn   


	r@   )typingr   fastapir   argparser   starlette.datastructuresr   vllm.engine.protocolr   vllm.entrypoints.loggerr   r9   r   objecttupler$   r@   r   r   r   r   <module>   s4   
