
    7|h                     h    d dl Z d dlmZ d dlZd dlmZ d dlmZ  G d dee      Z	 G d dee      Z
y)	    N)List)
Embeddings)	BaseModelc                   h    e Zd ZU dZeed<   	 dee   fdZdee	   deee      fdZ
de	dee   fdZy	)
FakeEmbeddingszFake embedding model.sizereturnc                 h    t        t        j                  j                  | j                              S N)r   )listnprandomnormalr   )selfs    b/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/embeddings/fake.py_get_embeddingzFakeEmbeddings._get_embedding   s#    BII$$$))$455    textsc                 H    |D cg c]  }| j                          c}S c c}w Nr   r   r   _s      r   embed_documentszFakeEmbeddings.embed_documents   s    /45!##%555s   textc                 "    | j                         S r   r   r   r   s     r   embed_queryzFakeEmbeddings.embed_query   s    ""$$r   N)__name__
__module____qualname____doc__int__annotations__r   floatr   strr   r    r   r   r   r   	   sT    
I+6U 66T#Y 64U3D 6% %U %r   r   c                       e Zd ZU dZeed<   	 dedee   fdZe	de
defd       Zdee
   deee      fd	Zde
dee   fd
Zy)DeterministicFakeEmbeddingzc
    Fake embedding model that always returns
    the same embedding vector for the same text.
    r   seedr	   c                     t         j                  j                  |       t        t         j                  j	                  | j
                              S r   )r   r   r*   r   r   r   )r   r*   s     r   r   z)DeterministicFakeEmbedding._get_embedding"   s3    
		tBII$$$))$455r   r   c                     t        t        j                  | j                  d            j	                         d      dz  S )zR
        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_seedz$DeterministicFakeEmbedding._get_seed'   s1    
 7>>$++g"67AACRH5PPr   r   c                 j    |D cg c]#  }| j                  | j                  |            % c}S c c}w N)r*   r   r2   r   s      r   r   z*DeterministicFakeEmbedding.embed_documents.   s-    EJK##):#;KKKs   (0c                 D    | j                  | j                  |            S r4   r5   r   s     r   r   z&DeterministicFakeEmbedding.embed_query1   s    ""t(<"==r   N)r   r    r!   r"   r#   r$   r   r%   r   staticmethodr&   r2   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)   )r.   typingr   numpyr   langchain_core.embeddingsr   pydanticr   r   r)   r'   r   r   <module>r<      s0       0 %Z % >Y >r   