
    dh~                         S SK r S SKr S SKJrJrJrJrJrJrJ	r	  S SK
rS SKJr  S SKJr  S SKJrJr  Sr " S S\\5      rg)	    N)AnyDictListLiteralOptionalSequencecast)
Embeddings)pre_init)	BaseModel
ConfigDictz0.2.0c                   2   \ rS rSr% SrSr\\S'    Sr\	\S'    Sr
\\   \S'    Sr\\	   \S	'    S
r\S   \S'    Sr\	\S'    Sr\\	   \S'    Sr\\\      \S'    Sr\\S'   \" SSS9r\S\S\4S j5       rS\\   S\\\      4S jrS\S\\   4S jrSrg)FastEmbedEmbeddings   a  Qdrant FastEmbedding models.

FastEmbed is a lightweight, fast, Python library built for embedding generation.
See more documentation at:
* https://github.com/qdrant/fastembed/
* https://qdrant.github.io/fastembed/

To use this class, you must install the `fastembed` Python package.

`pip install fastembed`
Example:
    from langchain_community.embeddings import FastEmbedEmbeddings
    fastembed = FastEmbedEmbeddings()
zBAAI/bge-small-en-v1.5
model_namei   
max_lengthN	cache_dirthreadsdefault)r   passagedoc_embed_type   
batch_sizeparallel	providersmodelallow )extraprotected_namespacesvaluesreturnc                    UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nU(       a  SU;   a  SOSn [        R                  " S5      n[        R
                  R                  U5      [        :  a  [	        SU S[         S35      eUR                  UUUUUS9US'   U$ ! [         a    [	        S	U S
35      ef = f)z+Validate that FastEmbed has been installed.r   r   r   r   r   CUDAExecutionProviderzfastembed-gpu	fastembedzQCould not import 'fastembed' Python package. Please install it with `pip install z`.z.FastEmbedEmbeddings requires `pip install -U "z>=z"`.)r   r   r   r   r   r   )	get	importlibimport_moduleModuleNotFoundErrorImportErrormetadataversionMIN_VERSIONTextEmbedding)	clsr!   r   r   r   r   r   pkg_to_installr%   s	            `/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/fastembed.pyvalidate_environment(FastEmbedEmbeddings.validate_environmentP   s    ZZ-
ZZ-
JJ{+	**Y'JJ{+	 4	A  		!//<I %%n5C$$2#32k]#G 
 $11!! 2 
w ' # 	77E6FbJ 	s   (C C-textsc                 P   U R                   S:X  a/  U R                  R                  XR                  U R                  S9nO.U R                  R                  XR                  U R                  S9nU Vs/ sH(  n[        [        [           UR                  5       5      PM*     sn$ s  snf )zGenerate embeddings for documents using FastEmbed.

Args:
    texts: The list of texts to embed.

Returns:
    List of embeddings, one for each text.
r   r   r   )
r   r   passage_embedr   r   embedr	   r   floattolist)selfr4   
embeddingses       r1   embed_documents#FastEmbedEmbeddings.embed_documentsv   s     )+11//DMM 2 J ))//DMM * J 8BBz!T%[!((*-zBBBs   2.B#textc                     [        U R                  R                  XR                  U R                  S95      n[        [        [           UR                  5       5      $ )zvGenerate query embeddings using FastEmbed.

Args:
    text: The text to embed.

Returns:
    Embeddings for the text.
r6   )	nextr   query_embedr   r   r	   r   r9   r:   )r;   r@   query_embeddingss      r1   embed_queryFastEmbedEmbeddings.embed_query   sP     (,JJ""4== # (

 DK!1!8!8!:;;    )__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   intr   r   r   r   r   r   r   r   r   r   r   r   model_configr   r   r2   r   r9   r>   rE   __static_attributes__r   rG   r1   r   r      s    /J. J  $Ix}# "GXc]! 5>NG01= J #Hhsm" *.Ix&- E3G"EL#$ #4 # #JCT#Y C4U3D C(< <U <rG   r   )r'   importlib.metadatatypingr   r   r   r   r   r   r	   numpynplangchain_core.embeddingsr
   langchain_core.utilsr   pydanticr   r   r-   r   r   rG   r1   <module>rY      s5      E E E  0 ) *K<)Z K<rG   