Waflon commited on
Commit
a6db4fa
1 Parent(s): 70e3b22

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -6
app.py CHANGED
@@ -17,7 +17,8 @@ from langchain_community.vectorstores import FAISS
17
  from langchain_community.document_loaders import HuggingFaceDatasetLoader
18
  from langchain_community.embeddings import HuggingFaceEmbeddings
19
 
20
- with st.spinner("Please wait..."):
 
21
  #Carga de DATASET
22
  dataset_name = "Waflon/FAQ"
23
  page_content_column = "respuestas"
@@ -26,23 +27,30 @@ with st.spinner("Please wait..."):
26
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
27
  #Transformado a tipo de dato especifico para esto
28
  docs = text_splitter.split_documents(data)
29
-
 
30
  #Modelo QA sentence similarity
31
  modelPath = 'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2' #español
32
  model_kwargs = {'device':'cpu'} # cuda or cpu
33
  encode_kwargs = {'normalize_embeddings': False}
34
-
 
35
  #Embeddings que transforman a vectores densos multidimensionales las preguntas del SII
36
  embeddings = HuggingFaceEmbeddings(
37
  model_name=modelPath, # Ruta a modelo Pre entrenado
38
  model_kwargs=model_kwargs, # Opciones de configuracion del modelo
39
  encode_kwargs=encode_kwargs # Opciones de Encoding
40
  )
41
-
 
42
  #DB y retriever
43
  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.
 
 
44
  retriever = db.as_retriever(search_kwargs={"k": 3})
45
-
 
 
46
  prompt_template = """Usa los siguientes fragmentos de contextos para responder una pregunta al final. Por favor sigue las siguientes reglas:
47
  1. Si la pregunta requiere vinculos, por favor retornar solamente las vinculos de los vinculos sin respuesta
48
  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.
@@ -73,10 +81,13 @@ with st.spinner("Please wait..."):
73
  retriever=retriever,
74
  return_source_documents=True,
75
  )
76
-
 
77
  x = st.text_area('Ingrese su pregunta')
78
  pipe = pipeline('sentiment-analysis')
79
 
80
  if text:
81
  out = pipe(text)
82
  st.json(out)
 
 
 
17
  from langchain_community.document_loaders import HuggingFaceDatasetLoader
18
  from langchain_community.embeddings import HuggingFaceEmbeddings
19
 
20
+ with st.status("Downloading data...", expanded=True) as status:
21
+ st.write("Cargando Dataset...")
22
  #Carga de DATASET
23
  dataset_name = "Waflon/FAQ"
24
  page_content_column = "respuestas"
 
27
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=150)
28
  #Transformado a tipo de dato especifico para esto
29
  docs = text_splitter.split_documents(data)
30
+
31
+ st.write("Cargando modelo de Sentence-Transformer...")
32
  #Modelo QA sentence similarity
33
  modelPath = 'sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2' #español
34
  model_kwargs = {'device':'cpu'} # cuda or cpu
35
  encode_kwargs = {'normalize_embeddings': False}
36
+
37
+ st.write("Embeddings...")
38
  #Embeddings que transforman a vectores densos multidimensionales las preguntas del SII
39
  embeddings = HuggingFaceEmbeddings(
40
  model_name=modelPath, # Ruta a modelo Pre entrenado
41
  model_kwargs=model_kwargs, # Opciones de configuracion del modelo
42
  encode_kwargs=encode_kwargs # Opciones de Encoding
43
  )
44
+
45
+ st.write("Base de datos FAISS...")
46
  #DB y retriever
47
  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.
48
+
49
+ st.write("Retriever...")
50
  retriever = db.as_retriever(search_kwargs={"k": 3})
51
+
52
+
53
+ st.write("Prompt template...")
54
  prompt_template = """Usa los siguientes fragmentos de contextos para responder una pregunta al final. Por favor sigue las siguientes reglas:
55
  1. Si la pregunta requiere vinculos, por favor retornar solamente las vinculos de los vinculos sin respuesta
56
  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.
 
81
  retriever=retriever,
82
  return_source_documents=True,
83
  )
84
+
85
+ st.write("Finalizando...")
86
  x = st.text_area('Ingrese su pregunta')
87
  pipe = pipeline('sentiment-analysis')
88
 
89
  if text:
90
  out = pipe(text)
91
  st.json(out)
92
+
93
+ st.write("Listo...")