
    Ng                         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d
S )    )ABCabstractmethod)	dataclass)ListTuple)	BaseModel)Elementc                       e Zd ZdS )EmbeddingConfigN)__name__
__module____qualname__     Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/unstructured/embed/interfaces.pyr   r   
   s        Dr   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d
S )BaseEmbeddingEncoderconfigc                     dS )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                     dS )z.Number of dimensions for the embedding vector.Nr   r   s    r   num_of_dimensionsz&BaseEmbeddingEncoder.num_of_dimensions   r   r   c                     dS )z1Denotes if the embedding vector is a unit vector.Nr   r   s    r   is_unit_vectorz#BaseEmbeddingEncoder.is_unit_vector   r   r   elementsc                     d S Nr   )r   r   s     r   embed_documentsz$BaseEmbeddingEncoder.embed_documents!       r   queryc                     d S 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 ^B =5: = = = ^ X= @ @ @ @ ^ X@ W $w-    ^  e    ^  r   r   N)abcr   r   dataclassesr   typingr   r   pydanticr   unstructured.documents.elementsr	   r   r   r   r   r   <module>r2      s    # # # # # # # # ! ! ! ! ! !               3 3 3 3 3 3	 	 	 	 	i 	 	 	     3     r   