
    :Qg                     ~    d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ  G d de	      Ze G d d	e             Zy
)    )ABCabstractmethod)	dataclass)ListTuple)	BaseModel)Elementc                       e Zd Zy)EmbeddingConfigN)__name__
__module____qualname__     Z/var/www/html/answerous/venv/lib/python3.12/site-packages/unstructured/embed/interfaces.pyr   r   
   s    r   r   c                       e Zd ZU eed<   ed        Zeedee	   fd              Z
eedefd              Zedee   dee   fd       Zededee   fd	       Zy
)BaseEmbeddingEncoderconfigc                      y)zInitializes the embedding encoder class. Should also validate the instance
        is properly configured: e.g., embed a single a elementNr   selfs    r   
initializezBaseEmbeddingEncoder.initialize       r   returnc                      y)z.Number of dimensions for the embedding vector.Nr   r   s    r   num_of_dimensionsz&BaseEmbeddingEncoder.num_of_dimensions   r   r   c                      y)z1Denotes if the embedding vector is a unit vector.Nr   r   s    r   is_unit_vectorz#BaseEmbeddingEncoder.is_unit_vector   r   r   elementsc                      y Nr   )r   r   s     r   embed_documentsz$BaseEmbeddingEncoder.embed_documents!       r   queryc                      y r!   r   )r   r$   s     r   embed_queryz BaseEmbeddingEncoder.embed_query%   r#   r   N)r   r   r   r   __annotations__r   r   propertyr   intr   boolr   r   r	   r"   strfloatr&   r   r   r   r   r      s    B B =5: =  = @ @  @ W $w-    e  r   r   N)abcr   r   dataclassesr   typingr   r   pydanticr   unstructured.documents.elementsr	   r   r   r   r   r   <module>r2      s;    # !   3	i 	 3  r   