a
    bgn	                     @   sJ   d Z ddlmZmZmZ ddlmZ ddlmZm	Z	 G dd deeZ
dS )z)Wrapper around text2vec embedding models.    )AnyListOptional)
Embeddings)	BaseModel
ConfigDictc                       s   e Zd ZU dZdZee ed< dZe	ed< dZ
eed< dZee ed< dZe	ed	< ed
dZddde	ee e	d fddZee eee  dddZeee dddZ  ZS )Text2vecEmbeddingsa  text2vec embedding models.

    Install text2vec first, run 'pip install -U text2vec'.
    The github repository for text2vec is : https://github.com/shibing624/text2vec

    Example:
        .. code-block:: python

            from langchain_community.embeddings.text2vec import Text2vecEmbeddings

            embedding = Text2vecEmbeddings()
            embedding.embed_documents([
                "This is a CoSENT(Cosine Sentence) model.",
                "It maps sentences to a 768 dimensional dense vector space.",
            ])
            embedding.embed_query(
                "It can be used for text matching or semantic search."
            )
    Nmodel_name_or_pathZMEANencoder_type   max_seq_lengthdevicemodel )Zprotected_namespacesr   r	   )r   r	   kwargsc             
      s   zddl m} W n. ty> } ztd|W Y d }~n
d }~0 0 i }|d urT||d< |ph|f i ||}t jf ||d| d S )Nr   )SentenceModelzIUnable to import text2vec, please install with `pip install -U text2vec`.r	   r   )Ztext2vecr   ImportErrorsuper__init__)selfr   r	   r   r   eZmodel_kwargs	__class__r   u/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/embeddings/text2vec.pyr   &   s    zText2vecEmbeddings.__init__)textsreturnc                 C   s   | j |S )zEmbed documents using the text2vec embeddings model.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        r   encode)r   r   r   r   r   embed_documents;   s    
z"Text2vecEmbeddings.embed_documents)textr   c                 C   s   | j |S )zEmbed a query using the text2vec embeddings model.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r   )r   r    r   r   r   embed_queryG   s    
zText2vecEmbeddings.embed_query)__name__
__module____qualname____doc__r	   r   str__annotations__r
   r   r   intr   r   r   Zmodel_configr   r   floatr   r!   __classcell__r   r   r   r   r   	   s    

r   N)r%   typingr   r   r   Zlangchain_core.embeddingsr   Zpydanticr   r   r   r   r   r   r   <module>   s   