Spaces:
Sleeping
Sleeping
""" | |
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() | |