
    7|hn	                     P    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ee      Z
y)z)Wrapper around text2vec embedding models.    )AnyListOptional)
Embeddings)	BaseModel
ConfigDictc                        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
      Zdddd	e	dee   de	f fdZdee   deee      fdZdedee   fdZ x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_pathMEANencoder_type   max_seq_lengthdevicemodel )protected_namespacesr   r   kwargsc                    	 ddl m} i }|||d<   |xs
  |di ||}t        |   d||d| y # t        $ r}t        d      |d }~ww xY w)Nr   )SentenceModelzIUnable to import text2vec, please install with `pip install -U text2vec`.r   r   r   )text2vecr   ImportErrorsuper__init__)selfr   r   r   r   emodel_kwargs	__class__s          f/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/embeddings/text2vec.pyr   zText2vecEmbeddings.__init__&   s{    	. )1CL-.@@@@Vu9KVvV  	- 	s   3 	AAAtextsreturnc                 8    | j                   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!   s     r    embed_documentsz"Text2vecEmbeddings.embed_documents;   s     zz  ''    textc                 8    | j                   j                  |      S )zEmbed a query using the text2vec embeddings model.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r$   )r   r(   s     r    embed_queryzText2vecEmbeddings.embed_queryG   s     zz  &&r'   )__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   intr   r   r   model_configr   r   floatr&   r*   __classcell__)r   s   @r    r
   r
   	   s    ( )-,L#NC FHSM E326L
 ,0	W W %SM	W
 W*
(T#Y 
(4U3D 
(
' 
'U 
'r'   r
   N)r.   typingr   r   r   langchain_core.embeddingsr   pydanticr   r   r
   r   r'   r    <module>r8      s$    / & & 0 *H'Y H'r'   