import os import gradio as gr from local_graphs import get_graph, recommend_dijkstra, recommend_floyd_warshall, recommend_page_rank, get_page_rank_graph import pandas as pd def img_path(img_name): return os.path.join("images", img_name) def greet(name, algorithm, n_recommendations): recommended_paths = [] G = get_graph() if algorithm == "Dijkstra": recommended_paths = recommend_dijkstra(G, name) elif algorithm == "Floyd-Warshall": recommended_paths = recommend_floyd_warshall(G, name) recommended_paths = recommended_paths[:n_recommendations] recommended_paths = [img_path(path) for path, _ in recommended_paths] return img_path(name), recommended_paths, pd.DataFrame(recommended_paths, columns=['image_path']) interface = gr.Interface( fn=greet, inputs=[ gr.Textbox( label="Nome", info="Informe o nome (id) da imagem", value="zh/2240px-Brazil_State_RiodeJaneiro.svg.png", placeholder="zh/2240px-Brazil_State_RiodeJaneiro.svg.png"), gr.Dropdown( ["Dijkstra", "Floyd-Warshall"], label="Algoritmo", info="Selecione o algoritmo de recomendação", value="Dijkstra"), gr.Slider(1, 100, label="Número de recomendações", value=5, step=1)], outputs=[ gr.Image(label="Imagem base"), gr.Gallery(label="Recomendações"), gr.Dataframe(label="Paths recomendados"), ]) if __name__ == "__main__": interface.launch(show_api=False)