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 i, (marca, similitud) in enumerate(salida, start=1): 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") iface = gr.Interface( fn=buscar_marcas, inputs=[ gr.Textbox(label="Marca a evaluar"), gr.Slider(0, 100, value=80, label="Umbral mínimo de similitud (%)") ], outputs="json", examples=[["coca cola", 80], ["nike", 75]] ) iface.launch()