
    ֕g                     d   d dl mZ d dl mZ d dlmZ d dl mZ d dlmZmZm	Z	 d dl
mZmZmZmZ d dlmZ d dlmZ d d	lZd d
lmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lZd dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z' d dl(m)Z) d d	l*Z* e*jV                  d      Z, e*jV                  d      Z-de.fdZ/y	)    )OpenAIEmbeddings)OpenAI)LLMChain)
ChatOpenAI)ConversationBufferMemoryChatMessageHistoryConversationBufferWindowMemory)ChatPromptTemplateHumanMessagePromptTemplateSystemMessagePromptTemplatePromptTemplate)PostgresChatMessageHistory)ListN)create_qa_with_sources_chain)StuffDocumentsChain)ConversationalRetrievalChain)
PGVecto_rs)HumanMessageSystemMessage)Document)
Embeddings)get_openai_callback)modelo_chatmodelo_vector)load_dotenvAPI_KEY_OPENAIAPI_URL_MILVUSpreguntac                 $   d}d}t        dt              }t        j                  |||      }| }|j	                  |d      }d}|D ]  }||j
                  dz   z  } t        j                  ||j                         j                  d	   
      }	|	S )N pruebaztext-embedding-3-large)modelopenai_api_key)	embeddingcollection_namedb_url   )k
source)	contenido	documento)
r   r   r   from_collection_namesimilarity_searchpage_contentr   RespuestaPgVectorpopmetadata)
r   CONNECTION_STRINGCOLLECTION_NAME
embeddingsvectordbquerydocsr+   docmodelos
             ;/opt/lhia/marcimex/python/app/langchain_lhia/vector_chat.pypregunta_pgvectorr<   "   s     O!&%J
 ..' H E$66u6BDI )3##D((	),,y488:K^K^_gKhiFM    )0langchain_openair   r   langchain.chainsr   r   langchain.memoryr   r   r	   langchain_core.prompts.chatr
   r   r   r   *langchain_community.chat_message_historiesr   typingr   urllib.parseurllibr   (langchain.chains.combine_documents.stuffr   r   +langchain_community.vectorstores.pgvecto_rsr   langchain_core.messagesr   r   jsonlangchain_core.documentsr   langchain_core.embeddingsr   langchain_community.callbacksr   
app.modelsr   r   dotenvr   osgetenvr   r   strr<    r=   r;   <module>rS      s    - # % ' h h    9 H 9 B ?  - 0 = 0  	ryy)*ryy)*s r=   