
    IgE	              	           d dl mZmZmZmZ d dlZd dlmZm	Z	 d dl
mZ ddddd	d
ddddgddddddddiddgZ G d de      Z G d de	      Zy)    )AnyDictListTypeN)OnnxTextEmbeddingOnnxTextEmbeddingWorker)TextEmbeddingWorkerzintfloat/multilingual-e5-largei   zText embeddings, Unimodal (text), Multilingual (~100 languages), 512 input tokens truncation, Prefixes for queries/documents: necessary, 2024 year.mitgQ@zQhttps://storage.googleapis.com/qdrant-fastembed/fast-multilingual-e5-large.tar.gzz!qdrant/multilingual-e5-large-onnx)urlhfz
model.onnxzmodel.onnx_data)modeldimdescriptionlicense
size_in_GBsources
model_fileadditional_filesz;sentence-transformers/paraphrase-multilingual-mpnet-base-v2i   zText embeddings, Unimodal (text), Multilingual (~50 languages), 384 input tokens truncation, Prefixes for queries/documents: not necessary, 2021 year.z
apache-2.0g      ?r   z,xenova/paraphrase-multilingual-mpnet-base-v2zonnx/model.onnx)r   r   r   r   r   r   r   c                       e Zd Zeded   fd       Zedeeee	f      fd       Z
deeej                  f   deeej                  f   fdZy)E5OnnxEmbeddingreturnr	   c                     t         S )N)E5OnnxEmbeddingWorkerclss    ]/var/www/html/answerous/venv/lib/python3.12/site-packages/fastembed/text/e5_onnx_embedding.py_get_worker_classz!E5OnnxEmbedding._get_worker_class%   s    $$    c                     t         S )zLists the supported models.

        Returns:
            List[Dict[str, Any]]: A list of dictionaries containing the model information.
        ) supported_multilingual_e5_modelsr   s    r   list_supported_modelsz%E5OnnxEmbedding.list_supported_models)   s
     0/r   
onnx_inputc                 *    |j                  dd       |S )z,
        Preprocess the onnx input.
        token_type_idsN)pop)selfr"   kwargss      r   _preprocess_onnx_inputz&E5OnnxEmbedding._preprocess_onnx_input2   s     	'.r   N)__name__
__module____qualname__classmethodr   r   r   r   strr   r!   npndarrayr(    r   r   r   r   $   sx    %$'<"= % % 0d4S>&: 0 0sBJJ/	c2::o	r   r   c                        e Zd ZdededefdZy)r   
model_name	cache_dirr   c                      t        d||dd|S )N   )r2   r3   threadsr0   )r   )r&   r2   r3   r'   s       r   init_embeddingz$E5OnnxEmbeddingWorker.init_embedding=   s)      
!
 	
 	
r   N)r)   r*   r+   r-   r   r7   r0   r   r   r   r   <   s#    

 

 

r   r   )typingr   r   r   r   numpyr.   fastembed.text.onnx_embeddingr   r   fastembed.text.onnx_text_modelr	   r    r   r   r0   r   r   <module>r<      s    ( (  T > 2 mf5
 #./ O p@
 (
$  8' 0
3 
r   