
    f                         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 dlZ	d dl
mZ d dlZ e         ej                  d      Z ej                  d      Z ej                  d	      Zd
efdZd Zy)    )
ChatOpenAI)PromptTemplate)Milvus)OpenAIEmbeddingsN)load_dotenvAPI_KEY_OPENAIHOST_MILVUSDB_NAME_MILVUScollection_namec                 X    t        dt              }t        || t        t        dd      S )Nztext-embedding-3-large)modelopenai_api_key19530)db_namehostport)r   connection_args)r   r   r   r
   r	   )r   
embeddingss     2/opt/lhia/ganansol/python/connection/connection.pymilvus_busquedar      s5    !&%J '%
	 	    c                    g }fd}t         j                  j                         5 }| D ci c]  }|j                  ||      | }}t         j                  j	                  |      D ]:  }|j                         }|s|j                  |       t        t        |             < 	 d d d        |S c c}w # 1 sw Y   |S xY w)Nc                     t        |       j                  d      }t        |        |D ]  }|d   }|dkD  st        |       |c S  y )N   )k   g?)r   similarity_search_with_scoreprint)	coleccioncoleccion_docsdocpuntajepreguntas       r   procesar_coleccionz0procesar_colecciones.<locals>.procesar_coleccion!   sX    (3PPQY]^P_i! 	&C!fG~g%%		&
 r   )	
concurrentfuturesThreadPoolExecutorsubmitas_completedresultappendr   len)	coleccionesr#   lista_coleccionesr$   executorr   futurosfuturo	resultados	    `       r   procesar_coleccionesr3      s     
			.	.	0 .H^ijQZ8??#5yA9Ljj ((55g> 	.FI!((3c+,-		..  k. s"   B4B/6B4='B4/B44B>)langchain_openair   langchain_core.prompts.chatr    langchain_community.vectorstoresr   r   
statisticsconcurrent.futuresr%   dotenvr   osgetenvr   r	   r
   strr   r3    r   r   <module>r>      se    ' 6 3 -    	 ryy)*BIIm$ryy)*S  r   