Waflon commited on
Commit
205c1d0
1 Parent(s): f7b1faf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -64
app.py CHANGED
@@ -2,73 +2,11 @@ import streamlit as st
2
  import getpass
3
  import os
4
 
5
- from langchain.prompts import PromptTemplate
6
- from langchain.chains.llm import LLMChain
7
- from langchain.chains.combine_documents.stuff import StuffDocumentsChain
8
- from langchain.chains import RetrievalQA
9
- from langchain.text_splitter import RecursiveCharacterTextSplitter
10
- from langchain_openai import ChatOpenAI
11
- from langchain_community.vectorstores import FAISS
12
- from langchain_community.document_loaders import HuggingFaceDatasetLoader
13
- from langchain_community.embeddings import HuggingFaceEmbeddings
14
 
15
- from modelo import test
16
- test()
17
  os.environ["OPENAI_API_KEY"] = st.secrets['OPENAI_API_KEY'] # agregada en la config de hugginface
18
-
19
  st.markdown("<h1 style='text-align: center; color: yellow;'>Chatbot SII</h1>", unsafe_allow_html=True)
20
- #Embeddings que transforman a vectores densos multidimensionales las preguntas del SII
21
- embeddings = HuggingFaceEmbeddings(
22
- model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2", # Ruta a modelo Pre entrenado
23
- model_kwargs={'device':'cpu'}, # Opciones de configuracion del modelo
24
- encode_kwargs={'normalize_embeddings': False} # Opciones de Encoding
25
- )
26
- try:
27
- db = FAISS.load_local("cache", embeddings)
28
- except:
29
- #Carga de DATASET
30
- dataset_name = "Waflon/FAQ"
31
- page_content_column = "respuestas"
32
- loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
33
- data = loader.load()
34
- text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
35
- #Transformado a tipo de dato especifico para esto
36
- docs = text_splitter.split_documents(data)
37
-
38
- #DB y retriever
39
- 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.
40
-
41
- retriever = db.as_retriever(search_kwargs={"k": 3})
42
-
43
- prompt_template = """Usa los siguientes fragmentos de contextos para responder una pregunta al final. Por favor sigue las siguientes reglas:
44
- 1. Si la pregunta requiere vinculos, por favor retornar solamente las vinculos de los vinculos sin respuesta
45
- 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 vinculos** y agregalos a la lista de vinculos.
46
- 3. Si encuentras la respuesta, escribe una respuesta concisa y agrega la lista de vinculos que sean usadas **directamente** para derivar la respuesta. Excluye los vinculos que sean irrelevantes al final de la respuesta
47
-
48
- {contexto}
49
-
50
- Pregunta: {question}
51
- Respuesta Util:"""
52
-
53
-
54
- QA_CHAIN_PROMPT = PromptTemplate.from_template(prompt_template) # prompt_template defined above
55
- llm_chain = LLMChain(llm=ChatOpenAI(), prompt=QA_CHAIN_PROMPT, callbacks=None, verbose=True)
56
- document_prompt = PromptTemplate(
57
- input_variables=["page_content", "url"],
58
- template="Contexto:\n{page_content}\nVinculo: {url}",
59
- )
60
- combine_documents_chain = StuffDocumentsChain(
61
- llm_chain=llm_chain,
62
- document_variable_name="contexto",
63
- document_prompt=document_prompt,
64
- callbacks=None,
65
- )
66
- chain = RetrievalQA(
67
- combine_documents_chain=combine_documents_chain,
68
- callbacks=None,
69
- verbose=True,
70
- retriever=retriever,
71
- )
72
 
73
  st.header("Este es un ChatBot 🤖🦾 entrenado con las preguntas frecuentes del sitio del servicios de impuestos interno de Chile.")
74
  pregunta = st.text_area('Ingresa tu pregunta:', value="Que es un APA?")
 
2
  import getpass
3
  import os
4
 
5
+ from modelo import get_chain
 
 
 
 
 
 
 
 
6
 
 
 
7
  os.environ["OPENAI_API_KEY"] = st.secrets['OPENAI_API_KEY'] # agregada en la config de hugginface
 
8
  st.markdown("<h1 style='text-align: center; color: yellow;'>Chatbot SII</h1>", unsafe_allow_html=True)
9
+ chain = get_chain()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  st.header("Este es un ChatBot 🤖🦾 entrenado con las preguntas frecuentes del sitio del servicios de impuestos interno de Chile.")
12
  pregunta = st.text_area('Ingresa tu pregunta:', value="Que es un APA?")