a
    bŠÝg3  ã                   @   s0   d Z ddlmZ ddlmZ G dd„ deƒZdS )z*Wrapper around model2vec embedding models.é    )ÚList)Ú
Embeddingsc                   @   sN   e Zd ZdZedœdd„Zee eee  dœdd„Zeee dœd	d
„Z	dS )ÚModel2vecEmbeddingsa`  Model2Vec embedding models.

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

    Example:
        .. code-block:: python

            from langchain_community.embeddings import Model2vecEmbeddings

            embedding = Model2vecEmbeddings("minishlab/potion-base-8M")
            embedding.embed_documents([
                "It's dangerous to go alone!",
                "It's a secret to everybody.",
            ])
            embedding.embed_query(
                "Take this with you."
            )
    )Úmodelc              
   C   sP   zddl m} W n. ty> } ztdƒ|‚W Y d}~n
d}~0 0 | |¡| _dS )zMInitialize embeddings.

        Args:
            model: Model name.
        r   )ÚStaticModelzKUnable to import model2vec, please install with `pip install -U model2vec`.N)Z	model2vecr   ÚImportErrorZfrom_pretrainedÚ_model)Úselfr   r   Úe© r   úv/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/embeddings/model2vec.pyÚ__init__   s    ÿýzModel2vecEmbeddings.__init__)ÚtextsÚreturnc                 C   s   | j  |¡ ¡ S )zÁEmbed documents using the model2vec embeddings model.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        ©r   ÚencodeÚtolist)r	   r   r   r   r   Úembed_documents,   s    
z#Model2vecEmbeddings.embed_documents)Útextr   c                 C   s   | j  |¡ ¡ S )z§Embed a query using the model2vec embeddings model.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r   )r	   r   r   r   r   Úembed_query8   s    
zModel2vecEmbeddings.embed_queryN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   Úfloatr   r   r   r   r   r   r      s   r   N)r   Útypingr   Zlangchain_core.embeddingsr   r   r   r   r   r   Ú<module>   s   