
    ^Nji                        U d dl 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 d dlmZ d dlmZmZ d dlmZmZ  ed	d
ddd ed	      d       edd
ddd ed	      d       edd
ddd ed      d       eddddd ed      d       edd
ddd ed      d       edd d!d"d# ed$d%d&'      d(d)g*      gZee   ed+<    G d, d-e      Z G d. d/e      Zy)0    )AnyIterableTypeN)NDArray)
NumpyArray)OnnxOutputContextmean_pooling)OnnxTextEmbeddingOnnxTextEmbeddingWorker)DenseModelDescriptionModelSourceznomic-ai/nomic-embed-text-v1.5i   zText embeddings, Multimodal (text, image), English, 8192 input tokens truncation, Prefixes for queries/documents: necessary, 2024 year.z
apache-2.0gp=
ף?)hfzonnx/model.onnx)modeldimdescriptionlicense
size_in_GBsources
model_filez nomic-ai/nomic-embed-text-v1.5-Qgp=
ף?zonnx/model_quantized.onnxznomic-ai/nomic-embed-text-v1z;sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2i  zText embeddings, Unimodal (text), Multilingual (~50 languages), 512 input tokens truncation, Prefixes for queries/documents: not necessary, 2019 year.g)\(?z3qdrant/paraphrase-multilingual-MiniLM-L12-v2-onnx-Qzmodel_optimized.onnxz;sentence-transformers/paraphrase-multilingual-mpnet-base-v2zText embeddings, Unimodal (text), Multilingual (~50 languages), 384 input tokens truncation, Prefixes for queries/documents: not necessary, 2021 year.g      ?z,xenova/paraphrase-multilingual-mpnet-base-v2zintfloat/multilingual-e5-largei   zText embeddings, Unimodal (text), Multilingual (~100 languages), 512 input tokens truncation, Prefixes for queries/documents: necessary, 2024 year.mitgQ@z!qdrant/multilingual-e5-large-onnxzQhttps://storage.googleapis.com/qdrant-fastembed/fast-multilingual-e5-large.tar.gzT)r   url_deprecated_tar_structz
model.onnxzmodel.onnx_data)r   r   r   r   r   r   r   additional_filessupported_pooled_modelsc                       e Zd Zedee   fd       Zededee	j                     defd       Zedee   fd       Zdededee   fd	Zy
)PooledEmbeddingreturnc                     t         S N)PooledEmbeddingWorkerclss    p/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/fastembed/text/pooled_embedding.py_get_worker_classz!PooledEmbedding._get_worker_class^   s    $$    model_outputattention_maskc                     t        ||      S r    r	   )r#   r'   r(   s      r$   r
   zPooledEmbedding.mean_poolingb   s     L.99r&   c                     t         S )zLists the supported models.

        Returns:
            list[DenseModelDescription]: A list of DenseModelDescription objects containing the model information.
        )r   r"   s    r$   _list_supported_modelsz&PooledEmbedding._list_supported_modelsh   s
     '&r&   outputkwargsc                     |j                   t        d      |j                  }|j                   }| j                  ||      S )Nz<attention_mask must be provided for document post-processing)r(   
ValueErrorr'   r
   )selfr,   r-   
embeddings	attn_masks        r$   _post_process_onnx_outputz)PooledEmbedding._post_process_onnx_outputq   sE       ([\\((
))	  Y77r&   N)__name__
__module____qualname__classmethodr   r   r%   r   r   npint64r
   listr   r+   r   r   r   r3    r&   r$   r   r   ]   s    %$'>"? % % :%:7>rxx7H:	: :
 't,A'B ' '8'8368	*	8r&   r   c                   $    e Zd ZdedededefdZy)r!   
model_name	cache_dirr-   r   c                      t        d||dd|S )N   )r=   r>   threadsr;   )r   )r0   r=   r>   r-   s       r$   init_embeddingz$PooledEmbeddingWorker.init_embedding}   s)      
!
 	
 	
r&   N)r4   r5   r6   strr   r   rB   r;   r&   r$   r!   r!   |   s-    

 
 	

 

r&   r!   )typingr   r   r   numpyr8   numpy.typingr   fastembed.common.typesr   fastembed.common.onnx_modelr   fastembed.common.utilsr
   fastembed.text.onnx_embeddingr   r   "fastembed.common.model_descriptionr   r   r   r:   __annotations__r   r!   r;   r&   r$   <module>rM      s_   & &    - 9 / T Q .D ?@$ 0D ?@. ,D =>$ KH TU) KH MN$ .D 2c#'

  +,{N8 34 Nb8' 8>
3 
r&   