|
from sentence_transformers import SentenceTransformer |
|
import gradio as gr |
|
import numpy as np |
|
import faiss |
|
|
|
|
|
model_name="quora-distilbert-multilingual" |
|
model = SentenceTransformer(model_name) |
|
|
|
|
|
def vectorize_text(text): |
|
return model.encode([text])[0] |
|
|
|
|
|
index = faiss.read_index("faiss_train_index.index") |
|
|
|
|
|
umbral_similitud = 0.8 |
|
|
|
|
|
def predecir_similitud(texto): |
|
|
|
texto_vectorizado = vectorize_text(texto) |
|
|
|
|
|
texto_vectorizado_np = np.array([texto_vectorizado], dtype=np.float32) |
|
D, I = index.search(texto_vectorizado_np, 1) |
|
similitud = 1 - D[0][0] |
|
|
|
|
|
if similitud >= umbral_similitud: |
|
resultado = f"Coincidencia detectada (similitud: {similitud:.2f})" |
|
else: |
|
resultado = f"No se detect贸 coincidencia (similitud: {similitud:.2f})" |
|
|
|
return resultado |
|
|
|
|
|
iface = gr.Interface( |
|
fn=predecir_similitud, |
|
inputs=gr.inputs.Textbox(default="Ingrese su texto aqu铆"), |
|
outputs=gr.outputs.Textbox(), |
|
live=True, |
|
title="Detector de Coincidencias", |
|
description="Ingrese un texto y haga clic en 'Predecir' para detectar coincidencias con los vectores." |
|
) |
|
|
|
|
|
iface.launch() |
|
|
|
|