MathQA / src /app.py
pmelnechuk's picture
Add src
bf7afac verified
"""
Este script realiza las siguientes tareas:
1. Carga archivos desde un directorio especificado utilizando la clase `Loader` del m贸dulo `preprocess`.
2. Procesa los archivos mediante limpieza de texto y divisi贸n en fragmentos.
3. Genera representaciones vectoriales de los textos utilizando `sentence-transformers`.
4. Almacena los vectores en una base de datos Chroma para su posterior recuperaci贸n.
5. Inicializa un modelo y ejecuta una interfaz para interactuar con los datos procesados.
M贸dulos utilizados:
- `preprocess`: Contiene la clase `Loader` para la carga y preprocesamiento de documentos.
- `vdb`: Se asume que gestiona la base de datos vectorial.
- `model_load`: M贸dulo para cargar el modelo de machine learning.
- `st`: Se asume que proporciona la interfaz de usuario.
Estructura del c贸digo:
1. Define el directorio de los archivos a procesar.
2. Carga los archivos y los procesa si el n煤mero de archivos es menor a 2.
3. Si hay m煤ltiples archivos, los procesa en un bucle y concatena los fragmentos.
4. Genera embeddings utilizando `sentence-transformers/all-MiniLM-L12-v2`.
5. Almacena los embeddings en ChromaDB y configura un recuperador basado en similitud.
6. Carga el modelo de machine learning.
7. Inicia la interfaz de usuario.
"""
from preprocess import Loader
import vdb
import model_load
import st
if __name__=="__main__":
# Definici贸n de directorio
archivo = r"directorio"
# Carga de archivos y procesamiento de texto
if len(archivo) < 2:
Load = Loader(archivo)
documentos = Load.load_docs()
textos_limpios = [Load.limpiar_texto(doc) for doc in documentos.page_content]
textos = Load.splitter(texto=textos_limpios, chunk_size=500, chunk_overlap=50)
else:
textos = []
for i in range(len(archivo)):
Load = Loader(archivo)
documentos = Load.load_docs()
textos_limpios = [Load.limpiar_texto(doc) for doc in documentos.page_content]
chunks = Load.splitter(texto=textos_limpios, chunk_size=500, chunk_overlap=50)
textos.extend(chunks)
# Generaci贸n de embeddings y almacenamiento en base de datos ChromaDB
embeddings = EmbeddingGen("sentence-transformers/all-MiniLM-L12-v2")
db = Chroma("QAMath", embedding_function=embeddings)
vectorstore = db.from_documents(chunks, embeddings)
retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 3})
# Carga del modelo y ejecuci贸n de la interfaz
load_model()
interfaz()