a
    bg                     @   s\   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 deeZ	G dd deeZ
dS )	    N)List)
Embeddings)	BaseModelc                   @   s\   e Zd ZU dZeed< ee dddZee	 eee  dddZ
e	ee d	d
dZdS )FakeEmbeddingszFake embedding model.size)returnc                 C   s   t tjj| jdS N)r   )listnprandomnormalr   self r   q/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/embeddings/fake.py_get_embedding   s    zFakeEmbeddings._get_embeddingtextsr   c                    s    fdd|D S )Nc                    s   g | ]}   qS r   r   .0_r   r   r   
<listcomp>       z2FakeEmbeddings.embed_documents.<locals>.<listcomp>r   r   r   r   r   r   embed_documents   s    zFakeEmbeddings.embed_documentstextr   c                 C   s   |   S )Nr   r   r   r   r   r   embed_query   s    zFakeEmbeddings.embed_queryN)__name__
__module____qualname____doc__int__annotations__r   floatr   strr   r   r   r   r   r   r   	   s
   
r   c                   @   sr   e Zd ZU dZeed< eee dddZe	e
edddZee
 eee  d	d
dZe
ee dddZdS )DeterministicFakeEmbeddingzc
    Fake embedding model that always returns
    the same embedding vector for the same text.
    r   )seedr   c                 C   s    t j| tt jj| jdS r   )r
   r   r)   r	   r   r   )r   r)   r   r   r   r   "   s    z)DeterministicFakeEmbedding._get_embeddingr   c                 C   s   t t| d dd 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   r   r   r   	_get_seed'   s    z$DeterministicFakeEmbedding._get_seedr   c                    s    fdd|D S )Nc                    s   g | ]} j  |d qS )r)   r   r/   r   r   r   r   r   /   r   z>DeterministicFakeEmbedding.embed_documents.<locals>.<listcomp>r   r   r   r   r   r   .   s    z*DeterministicFakeEmbedding.embed_documentsc                 C   s   | j | |dS )Nr0   r1   r   r   r   r   r   1   s    z&DeterministicFakeEmbedding.embed_queryN)r    r!   r"   r#   r$   r%   r   r&   r   staticmethodr'   r/   r   r   r   r   r   r   r(      s   
r(   )r+   typingr   numpyr
   Zlangchain_core.embeddingsr   Zpydanticr   r   r(   r   r   r   r   <module>   s   