
    dh                     \    S SK rS SKJrJrJrJr  S SKJr  S SK	J
r
JrJr   " S S\
\5      rg)    N)AnyDictListOptional)
Embeddings)	BaseModel
ConfigDictmodel_validatorc                       \ rS rSr% SrSr\\S'   Sr\	\
   \S'   \" SSS	9r\" S
S9\S\S\
4S j5       5       rS\\   S\\\      4S jrS\S\\   4S jrS\\   S\\\      4S jrS\S\\   4S jrSrg)SpacyEmbeddings   ak  Embeddings by spaCy models.

Attributes:
    model_name (str): Name of a spaCy model.
    nlp (Any): The spaCy model loaded into memory.

Methods:
    embed_documents(texts: List[str]) -> List[List[float]]:
        Generates embeddings for a list of documents.
    embed_query(text: str) -> List[float]:
        Generates an embedding for a single piece of text.
en_core_web_sm
model_nameNnlpforbid )extraprotected_namespacesbefore)modevaluesreturnc                    UR                  S5      c  SUS'   UR                  S5      n[        R                  R                  S5      c  [	        S5      e SSKnUR                  U5      US'   U$ ! [         a    [	        SU S	U S
35      ef = f)z
Validates that the spaCy package and the model are installed.

Args:
    values (Dict): The values provided to the class constructor.

Returns:
    The validated values.

Raises:
    ValueError: If the spaCy package or the
    model are not installed.
r   Nr   spacyzDSpaCy package not found. Please install it with `pip install spacy`.r   r   zSpaCy model 'z>' not found. Please install it with `python -m spacy download z%`or provide a valid spaCy model name.)get	importlibutil	find_spec
ValueErrorr   loadOSError)clsr   r   r   s       g/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/spacy_embeddings.pyvalidate_environment$SpacyEmbeddings.validate_environment   s      ::l#+#3F< ZZ-
 >>##G,4V 	!JJz2F5M   	
| ,..8\ :77 	s   A/ /Btextsc                 |    U Vs/ sH+  o R                  U5      R                  R                  5       PM-     sn$ s  snf )z
Generates embeddings for a list of documents.

Args:
    texts (List[str]): The documents to generate embeddings for.

Returns:
    A list of embeddings, one for each document.
r   vectortolist)selfr&   texts      r#   embed_documentsSpacyEmbeddings.embed_documentsD   s2     <AA54%%,,.5AAAs   19r,   c                 T    U R                  U5      R                  R                  5       $ )z
Generates an embedding for a single piece of text.

Args:
    text (str): The text to generate an embedding for.

Returns:
    The embedding for the text.
r(   r+   r,   s     r#   embed_querySpacyEmbeddings.embed_queryP   s!     xx~$$++--    c                     #    [        S5      e7f)a	  
Asynchronously generates embeddings for a list of documents.
This method is not implemented and raises a NotImplementedError.

Args:
    texts (List[str]): The documents to generate embeddings for.

Raises:
    NotImplementedError: This method is not implemented.
3Asynchronous embedding generation is not supported.NotImplementedError)r+   r&   s     r#   aembed_documents SpacyEmbeddings.aembed_documents\         ""WXX   c                     #    [        S5      e7f)a  
Asynchronously generates an embedding for a single piece of text.
This method is not implemented and raises a NotImplementedError.

Args:
    text (str): The text to generate an embedding for.

Raises:
    NotImplementedError: This method is not implemented.
r5   r6   r0   s     r#   aembed_querySpacyEmbeddings.aembed_queryi   r:   r;   )__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   r   r   r	   model_configr
   classmethodr   r$   r   floatr-   r1   r8   r=   __static_attributes__r   r3   r#   r   r      s     'J&C#H2FL(#%$ %3 %  $%N
BT#Y 
B4U3D 
B
. 
.U 
.YDI Y$tE{:K YYs YtE{ Yr3   r   )importlib.utilr   typingr   r   r   r   langchain_core.embeddingsr   pydanticr   r	   r
   r   r   r3   r#   <module>rN      s)     , , 0 ; ;lYi lYr3   