
    Ng                     v    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
dS )	    N)List)
Embeddings)	BaseModelc                       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d	S )
FakeEmbeddingszFake embedding model.sizereturnc                 f    t          t          j                            | j                            S N)r   )listnprandomnormalr   )selfs    _/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/embeddings/fake.py_get_embeddingzFakeEmbeddings._get_embedding   s%    BI$$$)$44555    textsc                        fd|D             S )Nc                 8    g | ]}                                 S  r   .0_r   s     r   
<listcomp>z2FakeEmbeddings.embed_documents.<locals>.<listcomp>   s%    555!##%%555r   r   r   r   s   ` r   embed_documentszFakeEmbeddings.embed_documents   s    5555u5555r   textc                 *    |                                  S )Nr   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   r   	   s         
III+6U 6 6 6 66T#Y 64U3D 6 6 6 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dS )DeterministicFakeEmbeddingzc
    Fake embedding model that always returns
    the same embedding vector for the same text.
    r   seedr	   c                     t           j                            |           t          t           j                            | j                            S r   )r   r   r-   r   r   r   )r   r-   s     r   r   z)DeterministicFakeEmbedding._get_embedding"   s9    
	tBI$$$)$44555r   r   c                     t          t          j        |                     d                                                    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'   s;    
 7>$++g"6"677AACCRHH5PPr   r   c                        fd|D             S )Nc                 b    g | ]+}                                         |                     ,S )r-   r   r5   r   s     r   r   z>DeterministicFakeEmbedding.embed_documents.<locals>.<listcomp>/   s6    KKK##):):#;;KKKr   r   r   s   ` r   r   z*DeterministicFakeEmbedding.embed_documents.   s    KKKKUKKKKr   c                 T    |                      |                     |                    S )Nr8   r9   r!   s     r   r"   z&DeterministicFakeEmbedding.embed_query1   s%    ""t(<(<"===r   N)r#   r$   r%   r&   r'   r(   r   r)   r   staticmethodr*   r5   r   r"   r   r   r   r,   r,      s          
 III+63 64; 6 6 6 6
 Q Q Q Q Q \QLT#Y L4U3D L L L L> >U > > > > > >r   r,   )r1   typingr   numpyr   langchain_core.embeddingsr   pydanticr   r   r,   r   r   r   <module>r@      s               0 0 0 0 0 0      % % % % %Z % % % > > > > >Y > > > > >r   