Ë
    ž¤IgJ  ã            
       óÂ   — 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mZ d dlmZ 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)ÚOnnxTextEmbeddingÚOnnxTextEmbeddingWorker)ÚTextEmbeddingWorkerznomic-ai/nomic-embed-text-v1.5i   z‡Text embeddings, Multimodal (text, image), English, 8192 input tokens truncation, Prefixes for queries/documents: necessary, 2024 year.z
apache-2.0g¤p=
×£à?Úhfzonnx/model.onnx)ÚmodelÚdimÚdescriptionÚlicenseÚ
size_in_GBÚsourcesÚ
model_filez nomic-ai/nomic-embed-text-v1.5-Qg¤p=
×£À?zonnx/model_quantized.onnxznomic-ai/nomic-embed-text-v1c                   óÒ   — e Zd Zedee   fd„«       Zedej                  dej                  dej                  fd„«       Z	ede
eeef      fd„«       Zdedeej                     fd„Zy	)
ÚPooledEmbeddingÚreturnc                 ó   — t         S )N)ÚPooledEmbeddingWorker©Úclss    ú\/var/www/html/answerous/venv/lib/python3.12/site-packages/fastembed/text/pooled_embedding.pyÚ_get_worker_classz!PooledEmbedding._get_worker_class/   s   € ä$Ð$ó    Úmodel_outputÚattention_maskc                 óB  — |}t        j                  |d¬«      }t        j                  |dd|j                  d   f«      }|j	                  t
        «      }t        j                  ||z  d¬«      }t        j                  |d¬«      }|t        j                  |d«      z  }|S )Néÿÿÿÿ)Úaxisé   g•Ö&è.>)ÚnpÚexpand_dimsÚtileÚshapeÚastypeÚfloatÚsumÚmaximum)r   r   r   Útoken_embeddingsÚinput_mask_expandedÚsum_embeddingsÚsum_maskÚpooled_embeddingss           r   Úmean_poolingzPooledEmbedding.mean_pooling3   s”   € à'ÐÜ Ÿn™n¨^À"ÔEÐÜ Ÿg™gÐ&9¸A¸qÐBR×BXÑBXÐY[ÑB\Ð;]Ó^ÐØ1×8Ñ8¼Ó?ÐÜŸ™Ð 0Ð3FÑ FÈQÔOˆÜ—6‘6Ð-°AÔ6ˆØ*¬R¯Z©Z¸À$Ó-GÑGÐØ Ð r   c                 ó   — t         S )z‘Lists the supported models.

        Returns:
            List[Dict[str, Any]]: A list of dictionaries containing the model information.
        )Úsupported_pooled_modelsr   s    r   Úlist_supported_modelsz%PooledEmbedding.list_supported_models>   s
   € ô 'Ð&r   Úoutputc                 ó¾   — |j                   €t        d«      ‚|j                  }|j                   }| j                  ||«      j	                  t
        j                  «      S )Nz<attention_mask must be provided for document post-processing)r   Ú
ValueErrorr   r1   r(   r$   Úfloat32)Úselfr5   Ú
embeddingsÚ	attn_masks       r   Ú_post_process_onnx_outputz)PooledEmbedding._post_process_onnx_outputG   sR   € Ø× Ñ Ð(ÜÐ[Ó\Ð\à×(Ñ(ˆ
Ø×)Ñ)ˆ	Ø× Ñ  ¨YÓ7×>Ñ>¼r¿z¹zÓJÐJr   N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r$   Úndarrayr1   r   r   Ústrr   r4   r   r   r<   © r   r   r   r   .   s¡   „ Øð% $Ð':Ñ";ò %ó ð%ð ð!¨¯
©
ð !ÀBÇJÁJð !ÐSU×S]ÑS]ò !ó ð!ð ð' d¨4°°S°©>Ñ&:ò 'ó ð'ðKÐ0Að KÀhÈrÏzÉzÑFZô K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 )Nr#   )rE   rF   ÚthreadsrC   )r   )r9   rE   rF   Úkwargss       r   Úinit_embeddingz$PooledEmbeddingWorker.init_embeddingQ   s)   € ô ð 
Ø!ØØñ
ð ñ	
ð 	
r   N)r=   r>   r?   rB   r	   rJ   rC   r   r   r   r   P   s#   „ ð
àð
ð ð
ð
 
ô
r   r   )Útypingr   r   r   r   r   Únumpyr$   Úfastembed.common.onnx_modelr   Úfastembed.text.onnx_embeddingr	   r
   Úfastembed.text.onnx_text_modelr   r3   r   r   rC   r   r   ú<module>rP      s¸   ðß 2Õ 2ã å 9ß TÝ >ð 2Øð aØØàÐ2ð
ð (ñ
ð 4Øð aØØàÐ2ð
ð 2ñ
ð 0Øð aØØàÐ0ð
ð (ñ
ð/"Ð ôJKÐ'ô KôD
Ð3õ 
r   