
    dh+	                     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ListOptional)
Embeddings)	BaseModel
ConfigDictc                      ^  \ rS rSr% SrSr\\S'   Sr\	\S'    Sr
\\	   \S'   S\4U 4S	 jjr\" S
SS9rS\\	   S\\\      4S jrS\	S\\   4S jrSrU =r$ )ModelScopeEmbeddings   ai  ModelScopeHub embedding models.

To use, you should have the ``modelscope`` python package installed.

Example:
    .. code-block:: python

        from langchain_community.embeddings import ModelScopeEmbeddings
        model_id = "damo/nlp_corom_sentence-embedding_english-base"
        embed = ModelScopeEmbeddings(model_id=model_id, model_revision="v1.0.0")
Nembedz.damo/nlp_corom_sentence-embedding_english-basemodel_idmodel_revisionkwargsc                    > [         TU ]  " S0 UD6   SSKJn  SSKJn  U" UR                  U R                  U R                  S9U l
        g! [         a  n[        S5      UeSnAff = f)zInitialize the modelscoper   )pipeline)TaskszVCould not import some python packages.Please install it with `pip install modelscope`.N)modelr    )super__init__modelscope.pipelinesr   modelscope.utils.constantr   ImportErrorsentence_embeddingr   r   r   )selfr   r   r   e	__class__s        e/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/modelscope_hub.pyr   ModelScopeEmbeddings.__init__   so    "6"	57 $$--..

  	C 	s   A 
A&A!!A&forbidr   )extraprotected_namespacestextsreturnc                 z    [        [        S U5      5      nSU0nU R                  US9S   nUR                  5       $ )zCompute doc embeddings using a modelscope embedding model.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.
c                 &    U R                  SS5      $ )N
 )replace)xs    r   <lambda>6ModelScopeEmbeddings.embed_documents.<locals>.<lambda>5   s    199T3#7    source_sentenceinputtext_embedding)listmapr   tolist)r   r#   inputs
embeddingss       r   embed_documents$ModelScopeEmbeddings.embed_documents,   sE     S7?@#U+ZZfZ-.>?
  ""r-   textc                 z    UR                  SS5      nSU/0nU R                  US9S   S   nUR                  5       $ )zCompute query embeddings using a modelscope embedding model.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.
r'   r(   r.   r/   r1   r   )r)   r   r4   )r   r9   r5   	embeddings       r   embed_query ModelScopeEmbeddings.embed_query:   sJ     ||D#&#dV,JJVJ,-=>qA	!!r-   )r   )__name__
__module____qualname____firstlineno____doc__r   r   __annotations__r   strr   r   r   r   model_configr   floatr7   r<   __static_attributes____classcell__)r   s   @r   r
   r
      s    
 E3DHcD$(NHSM(
 
" H2FL#T#Y #4U3D #" "U " "r-   r
   N)
typingr   r   r   langchain_core.embeddingsr   pydanticr   r   r
   r   r-   r   <module>rL      s    & & 0 *?"9j ?"r-   