awacke1 commited on
Commit
e58c46d
β€’
1 Parent(s): 2f2356b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -19,11 +19,12 @@ algo = SVD()
19
  algo.fit(trainset)
20
 
21
  # Initialize session state for storing user ratings
22
- if 'user_ratings' not in st.session_state:
23
- st.session_state.user_ratings = {1: [], 2: [], 3: [], 4: []}
 
24
 
25
- def update_ratings(item_id, rating):
26
- st.session_state.user_ratings[item_id].append(rating)
27
 
28
  # UI Elements
29
  st.title("🌟 Personalized Entertainment Recommendations")
@@ -60,16 +61,31 @@ predicted_ratings = [(id, algo.predict(5, id).est) for id in [1, 2, 3, 4] if id
60
  predicted_ratings.sort(key=lambda x: x[1], reverse=True)
61
 
62
  st.subheader("🎯 Recommendations for you:")
 
 
 
63
  for item_id, rating in predicted_ratings:
64
  for rec in recommendations[item_id]:
65
- avg_score = np.mean(st.session_state.user_ratings[item_id]) if st.session_state.user_ratings[item_id] else rating
 
 
66
  st.write(f"{rec} - Average Score: {avg_score:.2f} ⭐")
67
 
68
- # Rating buttons from 1 to 10
69
  user_rating = st.slider(f"Rate {rec}", 1, 10, 5, key=f"slider_{rec}")
70
  if st.button(f"Submit Rating for {rec}", key=f"button_{rec}"):
71
- update_ratings(item_id, user_rating)
72
- st.write(f"Submitted Rating: {user_rating}")
 
 
 
 
 
 
 
 
 
 
73
 
74
  # Display current session state (for debugging purposes)
75
- st.write("Session State (User Ratings):", st.session_state.user_ratings)
 
19
  algo.fit(trainset)
20
 
21
  # Initialize session state for storing user ratings
22
+ if 'movie_ratings' not in st.session_state:
23
+ st.session_state.movie_ratings = {'Die Hard': [], 'Mad Max': [], 'The Shawshank Redemption': [], 'Forrest Gump': [],
24
+ 'Superbad': [], 'Step Brothers': [], 'Inception': [], 'Interstellar': []}
25
 
26
+ def update_ratings(movie, rating):
27
+ st.session_state.movie_ratings[movie].append(rating)
28
 
29
  # UI Elements
30
  st.title("🌟 Personalized Entertainment Recommendations")
 
61
  predicted_ratings.sort(key=lambda x: x[1], reverse=True)
62
 
63
  st.subheader("🎯 Recommendations for you:")
64
+
65
+ # Collect average scores
66
+ all_movies = []
67
  for item_id, rating in predicted_ratings:
68
  for rec in recommendations[item_id]:
69
+ current_ratings = st.session_state.movie_ratings[rec]
70
+ avg_score = np.mean(current_ratings) if current_ratings else rating
71
+
72
  st.write(f"{rec} - Average Score: {avg_score:.2f} ⭐")
73
 
74
+ # Rating slider from 1 to 10
75
  user_rating = st.slider(f"Rate {rec}", 1, 10, 5, key=f"slider_{rec}")
76
  if st.button(f"Submit Rating for {rec}", key=f"button_{rec}"):
77
+ update_ratings(rec, user_rating)
78
+ st.experimental_rerun() # Rerun to immediately reflect the rating submission
79
+
80
+ all_movies.append((rec, avg_score))
81
+
82
+ # Sort movies by average score in descending order
83
+ sorted_movies = sorted(all_movies, key=lambda x: x[1], reverse=True)
84
+
85
+ # Display scoreboard
86
+ st.subheader("πŸ† Scoreboard:")
87
+ for movie, avg_score in sorted_movies:
88
+ st.write(f"{movie}: {avg_score:.2f} ⭐")
89
 
90
  # Display current session state (for debugging purposes)
91
+ # st.write("Session State (User Ratings):", st.session_state.movie_ratings)