
    IgF                        d dl mZmZmZmZmZ d dlZd dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlmZ dd	d
ddddddddddddddidddddddddidddddddddid 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IterableListTypeN)OnnxOutputContext)	normalize)OnnxTextEmbeddingOnnxTextEmbeddingWorker)TextEmbeddingWorker)PooledEmbeddingz&sentence-transformers/all-MiniLM-L6-v2i  zText embeddings, Unimodal (text), English, 256 input tokens truncation, Prefixes for queries/documents: not necessary, 2021 year.z
apache-2.0g
ףp=
?z]https://storage.googleapis.com/qdrant-fastembed/sentence-transformers-all-MiniLM-L6-v2.tar.gzzqdrant/all-MiniLM-L6-v2-onnx)urlhfz
model.onnx)modeldimdescriptionlicense
size_in_GBsources
model_filez!jinaai/jina-embeddings-v2-base-eni   zText embeddings, Unimodal (text), English, 8192 input tokens truncation, Prefixes for queries/documents: not necessary, 2023 year.gp=
ף?r   z!xenova/jina-embeddings-v2-base-enzonnx/model.onnxz"jinaai/jina-embeddings-v2-small-eni   gQ?z"xenova/jina-embeddings-v2-small-enz!jinaai/jina-embeddings-v2-base-dezText embeddings, Unimodal (text), Multilingual (German, English), 8192 input tokens truncation, Prefixes for queries/documents: not necessary, 2024 year.g{Gz?zonnx/model_fp16.onnxz#jinaai/jina-embeddings-v2-base-codezText embeddings, Unimodal (text), Multilingual (English, 30 programming languages), 8192 input tokens truncation, Prefixes for queries/documents: not necessary, 2024 year.g{Gz?c                   x    e Zd Zedee   fd       Zedeee	e
f      fd       Zdedeej                     fdZy)PooledNormalizedEmbeddingreturnc                     t         S )N)PooledNormalizedEmbeddingWorkerclss    g/var/www/html/answerous/venv/lib/python3.12/site-packages/fastembed/text/pooled_normalized_embedding.py_get_worker_classz+PooledNormalizedEmbedding._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_pooled_normalized_modelsr   s    r   list_supported_modelsz/PooledNormalizedEmbedding.list_supported_modelsD   s
     21r    outputc                     |j                   t        d      |j                  }|j                   }t        | j	                  ||            j                  t        j                        S )Nz<attention_mask must be provided for document post-processing)attention_mask
ValueErrormodel_outputr	   mean_poolingastypenpfloat32)selfr$   
embeddings	attn_masks       r   _post_process_onnx_outputz3PooledNormalizedEmbedding._post_process_onnx_outputM   sW      ([\\((
))	**:yABII"**UUr    N)__name__
__module____qualname__classmethodr   r   r   r   r   strr   r#   r   r   r+   ndarrayr0    r    r   r   r   ?   si    /$':"; / / 2d4S>&: 2 2V0A VhrzzFZ V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   )r9   r:   threadsr7   )r   )r-   r9   r:   kwargss       r   init_embeddingz.PooledNormalizedEmbeddingWorker.init_embeddingW   s)     ) 
!
 	
 	
r    N)r1   r2   r3   r5   r
   r?   r7   r    r   r   r   V   s#    

 

 

r    r   )typingr   r   r   r   r   numpyr+   fastembed.common.onnx_modelr   fastembed.common.utilsr	   fastembed.text.onnx_embeddingr
   r   fastembed.text.onnx_text_modelr   fastembed.text.pooled_embeddingr   r"   r   r   r7   r    r   <module>rG      s    2 2  9 , T > ; : [r0
 # 5 \=>' 6 \>?' 5 s=>, 7 E?@'Q1& "hV V.
&= 
r    