""" 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()