o
    f'                     @   s
  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e(fddZ)d	S )    )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preguntac           
      C   sn   d}d}t ddd}tj|||d}| }|j|dd}d}|D ]	}||jd	 7 }qtj|| jd
 d}	|	S )NzJpostgresql+psycopg2://postgres:OzMFq5AZeu48PxL@74.208.117.78:5431/postgrespruebaztext-embedding-3-large )modelopenai_api_key)	embeddingcollection_namedb_url   )k
source)	contenido	documento)	r   r   from_collection_namesimilarity_searchpage_contentr   RespuestaPgVectorpopmetadata)
r   CONNECTION_STRINGCOLLECTION_NAME
embeddingsvectordbquerydocsr&   docmodelo r6   X/home/marcatoma/Documents/GitHub/back-lhia-marcimex-ia/app/langchain_lhia/vector_chat.pypregunta_pgvector   s$   r8   )*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   strr8   r6   r6   r6   r7   <module>   s(    