
    dhV                     L    S SK JrJrJr  S SKJr  S SKJrJr   " S S\\5      r	g)    )AnyDictList)
Embeddings)	BaseModelmodel_validatorc                       \ rS rSr% Sr\\S'   Sr\\S'   \	" SS9\
S\S	\4S
 j5       5       rS\S	S4S jrS\\   S	\\\      4S jrS\S	\\   4S jrSrg)AwaEmbeddings   zEmbedding documents and queries with Awa DB.

Attributes:
    client: The AwaEmbedding client.
    model: The name of the model used for embedding.
     Default is "all-mpnet-base-v2".
clientzall-mpnet-base-v2modelbefore)modevaluesreturnc                 d     SSK Jn  U" 5       US'   U$ ! [         a  n[        S5      UeSnAff = f)z)Validate that awadb library is installed.r   )AwaEmbeddingzJCould not import awadb library. Please install it with `pip install awadb`Nr   )awadbr   ImportError)clsr   r   excs       Z/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/awa.pyvalidate_environment"AwaEmbeddings.validate_environment   sF    
	* (>x  	= 	s    
/*/
model_nameNc                 0    Xl         XR                  l        g)zSet the model used for embedding.
The default model used is all-mpnet-base-v2

Args:
    model_name: A string which represents the name of model.
N)r   r   r   )selfr   s     r   	set_modelAwaEmbeddings.set_model"   s      
!+    textsc                 8    U R                   R                  U5      $ )zEmbed a list of documents using AwaEmbedding.

Args:
    texts: The list of texts need to be embedded

Returns:
    List of embeddings, one for each text.
)r   EmbeddingBatch)r   r!   s     r   embed_documentsAwaEmbeddings.embed_documents,   s     {{))%00r    textc                 8    U R                   R                  U5      $ )zxCompute query embeddings using AwaEmbedding.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.
)r   	Embedding)r   r&   s     r   embed_queryAwaEmbeddings.embed_query7   s     {{$$T**r    )r   )__name__
__module____qualname____firstlineno____doc__r   __annotations__r   strr   classmethodr   r   r   r   floatr$   r)   __static_attributes__ r    r   r
   r
      s     K$E3$(#$ 3   $,C ,D ,	1T#Y 	14U3D 	1	+ 	+U 	+r    r
   N)
typingr   r   r   langchain_core.embeddingsr   pydanticr   r   r
   r5   r    r   <module>r9      s    " " 0 /9+Iz 9+r    