o
     f                     @   sn   d dl mZ d dlmZ d dlmZ d dl mZ d dlZdefddZ	d	efd
dZ
dededefddZdS )    )
ChatOpenAI)PromptTemplate)Milvus)OpenAIEmbeddingsNcollection_namec                 C   s"   t ddd}t|| dddddS )	Nztext-embedding-3-large )modelopenai_api_keydefaultz198.251.78.20119530)db_namehostport)r   connection_args)r   r   )r   
embeddings r   p/home/marcatoma/Documents/GitHub/back-lhia-marcimex-ia/app/langchain_lhia/funciones_langchain/filtro_vectores.pymilvus_busqueda   s   r   preguntac                 C   s   t |  dg}|D ]/}t|j| dd}g }|D ]	\}}|| q|r8t|t| }|dkr8t | |  S q	tdj| ddS )NPRODUCTOS_MARCIMEX   k皙?)printr   similarity_search_with_scoreappendsumlen)r   colecciones	coleccioncoleccion_docspuntajes	documentopuntajepromedior   r   r   vectores   s   r&   question
collectionamountc           
      C   s|   |g}|D ]/}t |j| |d}g }|D ]	\}}|| q|r4t|t| }	|	dkr4t|	 |  S qt |j| |dS )Nr   r   )r   r   r   r   r   r   )
r'   r(   r)   r   r    r!   r"   r#   r$   r%   r   r   r   vectors_name*   s   r*   )langchain_openair   langchain_core.prompts.chatr    langchain_community.vectorstoresr   r   
statisticsstrr   r&   intr*   r   r   r   r   <module>   s    