import gradio as gr import numpy as np import faiss # Cargar el índice de Faiss index = faiss.read_index("faiss_train_index.index") # Función para la predicción def predecir_similitud(texto, umbral): # Vectorizar el texto (usando la misma función que antes) texto_vectorizado = vectorize_text(texto) # Buscar similitud con Faiss texto_vectorizado_np = np.array([texto_vectorizado], dtype=np.float32) D, I = index.search(texto_vectorizado_np, 1) # Buscar el vector más cercano similitud = 1 - D[0][0] # Calcular similitud de coseno # Comparar con el umbral y proporcionar el resultado if similitud >= umbral: resultado = f"Coincidencia detectada (similitud: {similitud:.2f})" else: resultado = f"No se detectó coincidencia (similitud: {similitud:.2f})" return resultado # Crear la interfaz de Gradio iface = gr.Interface( fn=predecir_similitud, inputs=[gr.inputs.Textbox(default="Ingrese su texto aquí"), gr.inputs.Slider(minimum=0, maximum=1, default=0.8, label="Umbral de Similitud")], outputs=gr.outputs.Textbox(), live=True, title="Detector de Coincidencias", description="Ingrese un texto y ajuste el umbral de similitud para detectar coincidencias con los vectores." ) # Ejecutar la interfaz iface.launch()