leivaandres's picture
Update app.py
3850ad8 verified
import gradio as gr
import pandas as pd
from SBERT_Multilingue import buscar_marcas_similares as modelo_sbert
from BETO import buscar_marcas_similares as modelo_beto
def buscar_marcas(marca_input, umbral=80.0):
resultados = []
for modelo_func, nombre_modelo in [
(modelo_beto, "BETO"),
(modelo_sbert, "SBERT")
]:
try:
salida = modelo_func(marca_input)
for marca, similitud in salida:
if similitud >= umbral:
resultados.append({
"Marca": marca.strip().lower(),
"Similitud (%)": round(similitud, 2),
"Modelo": nombre_modelo
})
except Exception as e:
print(f"Error en {nombre_modelo}: {e}")
if not resultados:
return []
df = pd.DataFrame(resultados)
df = df.sort_values("Similitud (%)", ascending=False)
df = df.drop_duplicates(subset="Marca", keep="first")
df["Marca"] = df["Marca"].str.title()
df = df.reset_index(drop=True)
df.index += 1
df.index.name = "Índice"
return df.reset_index().to_dict(orient="records")
with gr.Blocks() as app:
texto = gr.Textbox(label="Marca a evaluar")
umbral = gr.Slider(0, 100, value=80, label="Umbral mínimo de similitud (%)")
salida = gr.JSON()
boton = gr.Button("Buscar")
boton.click(fn=buscar_marcas, inputs=[texto, umbral], outputs=salida)
app.launch()