
    dh                     h    S SK r S SKJr  S SKrS SKJr  S SKJr   " S S\\5      r	 " S S\\5      r
g)	    N)List)
Embeddings)	BaseModelc                   v    \ rS rSr% Sr\\S'    S\\   4S jr	S\\
   S\\\      4S jrS\
S\\   4S	 jrS
rg)FakeEmbeddings	   zFake embedding model.sizereturnc                 b    [        [        R                  R                  U R                  S95      $ N)r	   )listnprandomnormalr	   )selfs    [/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/fake.py_get_embeddingFakeEmbeddings._get_embedding   s#    BII$$$))$455    textsc                 J    U Vs/ sH  o R                  5       PM     sn$ s  snf Nr   r   r   _s      r   embed_documentsFakeEmbeddings.embed_documents   s!    /45u!##%u555s    textc                 "    U R                  5       $ r   r   r   r   s     r   embed_queryFakeEmbeddings.embed_query   s    ""$$r    N)__name__
__module____qualname____firstlineno____doc__int__annotations__r   floatr   strr   r!   __static_attributes__r#   r   r   r   r   	   sT    
I+6U 66T#Y 64U3D 6% %U %r   r   c                       \ rS rSr% Sr\\S'    S\S\\   4S jr	\
S\S\4S j5       rS	\\   S\\\      4S
 jrS\S\\   4S jrSrg)DeterministicFakeEmbedding   zW
Fake embedding model that always returns
the same embedding vector for the same text.
r	   seedr
   c                     [         R                  R                  U5        [        [         R                  R	                  U R
                  S95      $ r   )r   r   r1   r   r   r	   )r   r1   s     r   r   )DeterministicFakeEmbedding._get_embedding"   s3    
		tBII$$$))$455r   r   c                     [        [        R                  " U R                  S5      5      R	                  5       S5      S-  $ )zB
Get a seed for the random generator, using the hash of the text.
zutf-8   i )r)   hashlibsha256encode	hexdigest)r   s    r   	_get_seed$DeterministicFakeEmbedding._get_seed'   s1    
 7>>$++g"67AACRH5PPr   r   c                 f    U Vs/ sH   o R                  U R                  U5      S9PM"     sn$ s  snf N)r1   r   r:   r   s      r   r   *DeterministicFakeEmbedding.embed_documents.   s/    EJKU##):#;UKKKs   &.c                 >    U R                  U R                  U5      S9$ r=   r>   r    s     r   r!   &DeterministicFakeEmbedding.embed_query1   s    ""t(<"==r   r#   N)r$   r%   r&   r'   r(   r)   r*   r   r+   r   staticmethodr,   r:   r   r!   r-   r#   r   r   r/   r/      s    
 I+63 64; 6
 Q Q Q QLT#Y L4U3D L> >U >r   r/   )r6   typingr   numpyr   langchain_core.embeddingsr   pydanticr   r   r/   r#   r   r   <module>rG      s0       0 %Z % >Y >r   