File size: 1,639 Bytes
c43be1e
5a1f6bf
 
641b120
5a1f6bf
c43be1e
 
 
 
 
 
 
 
5a1f6bf
641b120
5a1f6bf
19a96ce
 
 
5a1f6bf
19a96ce
5a1f6bf
 
 
 
 
 
 
 
 
19a96ce
5a1f6bf
 
eb3bbff
5a1f6bf
 
 
19a96ce
5a1f6bf
 
19a96ce
5a1f6bf
 
 
19a96ce
5a1f6bf
 
 
 
19a96ce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from sentence_transformers import SentenceTransformer
import gradio as gr
import numpy as np
import faiss

# Cargar el modelo de Sentence Transformers
model_name="quora-distilbert-multilingual"
model = SentenceTransformer(model_name)

# Funci贸n para vectorizar un texto
def vectorize_text(text):
    return model.encode([text])[0]
    
# Cargar el 铆ndice de Faiss
index = faiss.read_index("faiss_train_index.index")

# Establecer el umbral de similitud (puedes ajustarlo seg煤n tus necesidades)
umbral_similitud = 0.8

# Funci贸n para la predicci贸n
def predecir_similitud(texto):
    # 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_similitud:
        resultado = f"Coincidencia detectada (similitud: {similitud:.2f})"
    else:
        resultado = f"No se detect贸 coincidencia (similitud: {similitud:.2f})"
    
    return resultado

# Crear la interfaz de Gradio con un bot贸n de "Predecir"
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."
)

# Ejecutar la interfaz
iface.launch()