import streamlit as st import pandas as pd import numpy as np import networkx as nx import matplotlib.pyplot as plt from sklearn.metrics.pairwise import cosine_similarity st.title("GNN Recommender Agent") uploaded_file = st.file_uploader("Upload CSV File", type=["csv"]) if uploaded_file: df = pd.read_csv(uploaded_file) st.write("Dataset:") st.dataframe(df) matrix = df.iloc[:,1:].values sim = cosine_similarity(matrix) st.subheader("Cosine Similarity") st.write(sim) users = df.iloc[:,0].tolist() G = nx.Graph() for u in users: G.add_node(u, bipartite=0) for i in range(matrix.shape[1]): G.add_node(f"I{i+1}", bipartite=1) for r in range(len(users)): for c in range(matrix.shape[1]): if matrix[r][c] == 1: G.add_edge(users[r], f"I{c+1}") fig, ax = plt.subplots() pos = nx.spring_layout(G) nx.draw(G, pos, with_labels=True, node_size=1500, ax=ax) st.pyplot(fig)