Waflon commited on
Commit
62a3b5b
1 Parent(s): d99d521

Update modelo.py

Browse files
Files changed (1) hide show
  1. modelo.py +12 -8
modelo.py CHANGED
@@ -7,8 +7,6 @@ from langchain_openai import ChatOpenAI
7
  from langchain_community.vectorstores import FAISS
8
  from langchain_community.document_loaders import HuggingFaceDatasetLoader
9
  from langchain_community.embeddings import HuggingFaceEmbeddings
10
- from dotenv import load_dotenv
11
- load_dotenv()
12
 
13
  def get_chain():
14
  # agregada en la config de hugginface
@@ -26,16 +24,20 @@ def get_chain():
26
  page_content_column = "respuestas"
27
  loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
28
  data = loader.load()
 
 
29
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
30
- #Transformado a tipo de dato especifico para esto
31
  docs = text_splitter.split_documents(data)
32
-
33
  #DB y retriever
34
  db = FAISS.from_documents(docs, embeddings) # Create a retriever object from the 'db' with a search configuration where it retrieves up to 4 relevant splits/documents.
35
-
 
36
  retriever = db.as_retriever(search_kwargs={"k": 3})
37
 
38
- prompt_template = """Usa los siguientes fragmentos de contextos para responder una pregunta al final. Por favor sigue las siguientes reglas:
 
 
39
  1. Si la pregunta requiere vinculos, por favor retornar solamente las vinculos de los vinculos sin respuesta
40
  2. Si no sabes la respuesta, no inventes una respuesta. Solamente di **No pude encontrar la respuesta definitiva, pero, tal vez quieras ver los siguientes vínculos** y agregalos a la lista de vínculos.
41
  3. Si encuentras la respuesta, escribe una respuesta concisa y agrega la lista de víinculos relevantes para derivar la respuesta.
@@ -44,24 +46,26 @@ def get_chain():
44
 
45
  Pregunta: {question}
46
  Respuesta Util:"""
 
47
 
48
-
49
- QA_CHAIN_PROMPT = PromptTemplate.from_template(prompt_template) # prompt_template defined above
50
  llm_chain = LLMChain(llm=ChatOpenAI(), prompt=QA_CHAIN_PROMPT, callbacks=None, verbose=True)
51
  document_prompt = PromptTemplate(
52
  input_variables=["page_content", "url"],
53
  template="Contexto:\n{page_content}\nVinculo: {url}",
54
  )
 
55
  combine_documents_chain = StuffDocumentsChain(
56
  llm_chain=llm_chain,
57
  document_variable_name="contexto",
58
  document_prompt=document_prompt,
59
  callbacks=None,
60
  )
 
61
  chain = RetrievalQA(
62
  combine_documents_chain=combine_documents_chain,
63
  callbacks=None,
64
  verbose=True,
65
  retriever=retriever,
66
  )
 
67
  return(chain)
 
7
  from langchain_community.vectorstores import FAISS
8
  from langchain_community.document_loaders import HuggingFaceDatasetLoader
9
  from langchain_community.embeddings import HuggingFaceEmbeddings
 
 
10
 
11
  def get_chain():
12
  # agregada en la config de hugginface
 
24
  page_content_column = "respuestas"
25
  loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
26
  data = loader.load()
27
+
28
+ #Dividir en chucks, esto es super importante
29
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
30
+
31
  docs = text_splitter.split_documents(data)
 
32
  #DB y retriever
33
  db = FAISS.from_documents(docs, embeddings) # Create a retriever object from the 'db' with a search configuration where it retrieves up to 4 relevant splits/documents.
34
+ db = FAISS.load_local("cache")
35
+
36
  retriever = db.as_retriever(search_kwargs={"k": 3})
37
 
38
+ # prompt_template =
39
+ QA_CHAIN_PROMPT = PromptTemplate.from_template("""
40
+ Usa los siguientes fragmentos de contextos para responder una pregunta al final. Por favor sigue las siguientes reglas:
41
  1. Si la pregunta requiere vinculos, por favor retornar solamente las vinculos de los vinculos sin respuesta
42
  2. Si no sabes la respuesta, no inventes una respuesta. Solamente di **No pude encontrar la respuesta definitiva, pero, tal vez quieras ver los siguientes vínculos** y agregalos a la lista de vínculos.
43
  3. Si encuentras la respuesta, escribe una respuesta concisa y agrega la lista de víinculos relevantes para derivar la respuesta.
 
46
 
47
  Pregunta: {question}
48
  Respuesta Util:"""
49
+ ) # prompt_template defined above
50
 
 
 
51
  llm_chain = LLMChain(llm=ChatOpenAI(), prompt=QA_CHAIN_PROMPT, callbacks=None, verbose=True)
52
  document_prompt = PromptTemplate(
53
  input_variables=["page_content", "url"],
54
  template="Contexto:\n{page_content}\nVinculo: {url}",
55
  )
56
+
57
  combine_documents_chain = StuffDocumentsChain(
58
  llm_chain=llm_chain,
59
  document_variable_name="contexto",
60
  document_prompt=document_prompt,
61
  callbacks=None,
62
  )
63
+
64
  chain = RetrievalQA(
65
  combine_documents_chain=combine_documents_chain,
66
  callbacks=None,
67
  verbose=True,
68
  retriever=retriever,
69
  )
70
+
71
  return(chain)