
    ^Nj=
                     T    d dl mZmZ d dlmZ d dlmZ d dlmZ  G d dee         Z	y)    )IterableAny)DenseModelDescription)
NumpyArray)ModelManagementc                      e Zd Z	 	 ddededz  dedz  defdZ	 	 ddeee   z  ded	edz  ded
ee   f
dZ	dee   ded
ee   fdZ
deee   z  ded
ee   fdZeded
efd       Zed
efd       Zdeee   z  ded
efdZy)TextEmbeddingBaseN
model_name	cache_dirthreadskwargsc                 j    || _         || _        || _        |j                  dd      | _        d | _        y )Nlocal_files_onlyF)r
   r   r   pop_local_files_only_embedding_size)selfr
   r   r   r   s        s/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/fastembed/text/text_embedding_base.py__init__zTextEmbeddingBase.__init__	   s5     %"!',>!F+/    	documents
batch_sizeparallelreturnc                     t               )NNotImplementedError)r   r   r   r   r   s        r   embedzTextEmbeddingBase.embed   s     "##r   textsc              +   F   K    | j                   |fi |E d{    y7 w)a+  
        Embeds a list of text passages into a list of embeddings.

        Args:
            texts (Iterable[str]): The list of texts to embed.
            **kwargs: Additional keyword argument to pass to the embed method.

        Yields:
            Iterable[NumpyArray]: The embeddings.
        N)r   r   r   r   s      r   passage_embedzTextEmbeddingBase.passage_embed   s!      4::e.v...s   !!queryc              +      K   t        |t              r | j                  |gfi |E d{    y | j                  |fi |E d{    y7 !7 w)z
        Embeds queries

        Args:
            query (Union[str, Iterable[str]]): The query to embed, or an iterable e.g. list of queries.

        Returns:
            Iterable[NumpyArray]: The embeddings.
        N)
isinstancestrr   )r   r#   r   s      r   query_embedzTextEmbeddingBase.query_embed.   sO      eS!!tzz5'4V444!tzz%26222 52s!   (AAAAAAc                     t        d      )z+Returns embedding size of the passed model.%Subclasses must implement this methodr   )clsr
   s     r   get_embedding_sizez$TextEmbeddingBase.get_embedding_size?        ""IJJr   c                     t        d      )z,Returns embedding size for the current modelr)   r   )r   s    r   embedding_sizez TextEmbeddingBase.embedding_sizeD   r,   r   c                     t        d      )z*Returns the number of tokens in the texts.r)   r   r!   s      r   token_countzTextEmbeddingBase.token_countI   s    !"IJJr   )NN)   N)__name__
__module____qualname__r&   intr   r   r   r   r   r"   r'   classmethodr+   propertyr.   r0    r   r   r	   r	      sC    !%"	00 :0 t	0
 0  #	$#&$ $ *	$
 $ 
*	$/8C= /C /HZDX /3x}!4 3 3Q[H\ 3" KC KC K K K K KKx}!4 K K Kr   r	   N)
typingr   r   "fastembed.common.model_descriptionr   fastembed.common.typesr   !fastembed.common.model_managementr   r	   r8   r   r   <module>r=      s'      D - =CK(=> CKr   