pmelnechuk commited on
Commit
1515275
verified
1 Parent(s): 4d1e547

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -31
app.py CHANGED
@@ -1,36 +1,13 @@
1
- """
2
- Este script realiza las siguientes tareas:
3
- 1. Carga archivos desde un directorio especificado utilizando la clase `Loader` del m贸dulo `preprocess`.
4
- 2. Procesa los archivos mediante limpieza de texto y divisi贸n en fragmentos.
5
- 3. Genera representaciones vectoriales de los textos utilizando `sentence-transformers`.
6
- 4. Almacena los vectores en una base de datos Chroma para su posterior recuperaci贸n.
7
- 5. Inicializa un modelo y ejecuta una interfaz para interactuar con los datos procesados.
8
- M贸dulos utilizados:
9
- - `preprocess`: Contiene la clase `Loader` para la carga y preprocesamiento de documentos.
10
- - `vdb`: Se asume que gestiona la base de datos vectorial.
11
- - `model_load`: M贸dulo para cargar el modelo de machine learning.
12
- - `st`: Se asume que proporciona la interfaz de usuario.
13
- Estructura del c贸digo:
14
- 1. Define el directorio de los archivos a procesar.
15
- 2. Carga los archivos y los procesa si el n煤mero de archivos es menor a 2.
16
- 3. Si hay m煤ltiples archivos, los procesa en un bucle y concatena los fragmentos.
17
- 4. Genera embeddings utilizando `sentence-transformers/all-MiniLM-L12-v2`.
18
- 5. Almacena los embeddings en ChromaDB y configura un recuperador basado en similitud.
19
- 6. Carga el modelo de machine learning.
20
- 7. Inicia la interfaz de usuario..
21
- """
22
  from langchain_community.vectorstores import Chroma
23
  from langchain_community.embeddings import HuggingFaceEmbeddings
24
- #from langchain_chroma import Chroma
25
  from tqdm.auto import tqdm
26
- #from chromadb.utils import embedding_functions
27
  from src.preprocess import Loader
28
  from src.vdb import EmbeddingGen
29
  import src.model_load
30
  import gradio as gr
31
 
32
- @spaces.GPU
33
- if __name__=="__main__":
34
  # Definici贸n de directorio
35
  archivo = [r"data/Calculo_Trascendentes_Tempranas_Zill_4t.pdf"]
36
 
@@ -43,13 +20,13 @@ if __name__=="__main__":
43
  else:
44
  textos = []
45
  for i in range(len(archivo)):
46
- Load = Loader(archivo)
47
  documentos = Load.load_docs()
48
  textos_limpios = [Load.limpiar_texto(texto=doc) for doc in documentos]
49
  chunks = Load.splitter(texto=textos_limpios, chunk_size=500, chunk_overlap=50)
50
  textos.extend(chunks)
51
 
52
- # Generaci贸n de embeddings y almacenamiento en base de datos ChromaDB
53
  embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L12-v2")
54
  persist_directory = "./persist_directory"
55
  db = Chroma(persist_directory=persist_directory, embedding_function=embeddings.embed_documents)
@@ -57,11 +34,13 @@ if __name__=="__main__":
57
  print("Vectorizado terminado")
58
  retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 3})
59
  print("Carga del modelo")
60
- # Carga del modelo y ejecuci贸n de la interfaz
61
- qa_chain=src.model_load.load_model()
 
62
  print("Lanzando interfaz")
 
63
  def chatbot_response(message):
64
- return src.model_load(message,retriever)
65
 
66
  iface = gr.Interface(
67
  fn=chatbot_response,
@@ -71,4 +50,8 @@ if __name__=="__main__":
71
  description="Interfaz simple de chatbot con Gradio."
72
  )
73
 
74
- iface.launch(server_port=7860)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  from langchain_community.vectorstores import Chroma
2
  from langchain_community.embeddings import HuggingFaceEmbeddings
 
3
  from tqdm.auto import tqdm
 
4
  from src.preprocess import Loader
5
  from src.vdb import EmbeddingGen
6
  import src.model_load
7
  import gradio as gr
8
 
9
+ @spaces.GPU # Ubica aqu铆 la anotaci贸n correctamente
10
+ def main():
11
  # Definici贸n de directorio
12
  archivo = [r"data/Calculo_Trascendentes_Tempranas_Zill_4t.pdf"]
13
 
 
20
  else:
21
  textos = []
22
  for i in range(len(archivo)):
23
+ Load = Loader(archivo[i])
24
  documentos = Load.load_docs()
25
  textos_limpios = [Load.limpiar_texto(texto=doc) for doc in documentos]
26
  chunks = Load.splitter(texto=textos_limpios, chunk_size=500, chunk_overlap=50)
27
  textos.extend(chunks)
28
 
29
+ # Generaci贸n de embeddings y almacenamiento
30
  embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L12-v2")
31
  persist_directory = "./persist_directory"
32
  db = Chroma(persist_directory=persist_directory, embedding_function=embeddings.embed_documents)
 
34
  print("Vectorizado terminado")
35
  retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 3})
36
  print("Carga del modelo")
37
+
38
+ # Carga del modelo
39
+ qa_chain = src.model_load.load_model()
40
  print("Lanzando interfaz")
41
+
42
  def chatbot_response(message):
43
+ return qa_chain(message, retriever)
44
 
45
  iface = gr.Interface(
46
  fn=chatbot_response,
 
50
  description="Interfaz simple de chatbot con Gradio."
51
  )
52
 
53
+ iface.launch(server_port=7860, share=True) # Aqu铆 puedes asegurarte de que `share=True` est茅 activo
54
+
55
+
56
+ if __name__ == "__main__":
57
+ main()