
    ge                         d dl mZmZ d dlmZ d dlmZ d dlZ e       Z edd      Z	 G d d	e      Z
ej                  d
      de
fd       Zy)    )FastAPIRequest)	BaseModel)SentenceTransformerNBAAI/bge-m3cpu)devicec                       e Zd ZU eed<   y)EmbeddingRequestinputN)__name__
__module____qualname__list__annotations__     !/changpt/vllm/embedding_server.pyr   r      s    Kr   r   z/v1/embeddingsrequestc           	        K   | j                   }t        j                  |d      j                         }dt	        |      D cg c]  \  }}||dd c}}dt        d |D              t        d |D              d	d
S c c}}w w)NT)normalize_embeddingsr   	embedding)r   indexobjectr   c              3   N   K   | ]  }t        |j                                 y wNlensplit.0texts     r   	<genexpr>zembeddings.<locals>.<genexpr>   s      EtTZZ\!2 E   #%c              3   N   K   | ]  }t        |j                                 y wr   r   r    s     r   r#   zembeddings.<locals>.<genexpr>   s     DdDJJL 1Dr$   )prompt_tokenstotal_tokens)r   datamodelusage)r   r)   encodetolist	enumeratesum)r   texts
embeddingsiembs        r   r0   r0      s     MMEe$?FFHJ  $J/
3 [A
   Eu EEDeDD
 
s   ABA>1B)fastapir   r   pydanticr   sentence_transformersr   torchappr)   r   postr0   r   r   r   <module>r9      sX    $  5 i 	M%8y  
.  r   