deppfellow commited on
Commit
b01c3d3
·
1 Parent(s): 9c3c7e9

Fixing multiselect to preserve user input

Browse files
Files changed (3) hide show
  1. app.py +18 -14
  2. easeBased_model.py +2 -2
  3. func.py +16 -6
app.py CHANGED
@@ -8,8 +8,8 @@ from contentBased_model import *
8
  if "user_preferences" not in st.session_state:
9
  st.session_state["user_preferences"] = {}
10
 
11
- if "user_titles" not in st.session_state:
12
- st.session_state["user_titles"] = []
13
 
14
  data = pd.read_pickle("data/2k_titles.pkl")
15
 
@@ -74,16 +74,24 @@ def spr_sidebar():
74
  # Home page. One of the page in Main Header
75
  def home_page():
76
  st.title("Steam Recommendation System")
 
77
 
78
- # st.session_state['user_title'] = st.session_state['input_title']
79
- preferences = st.multiselect(
80
- label="Input games you like:",
81
- options=list(data),
82
- key="user_titles")
83
-
84
- user_input = generate_app_gamebox(preferences)
 
 
 
 
 
 
 
85
 
86
- state = st.button("Get state")
87
 
88
  if state:
89
  st.session_state["user_preferences"] = user_input
@@ -91,10 +99,6 @@ def home_page():
91
  st.markdown("---")
92
  games_recomm(st.session_state["user_preferences"])
93
 
94
- # st.session_state
95
-
96
-
97
-
98
  # Result page
99
  # Show the list of predictions for active user
100
  def result_page():
 
8
  if "user_preferences" not in st.session_state:
9
  st.session_state["user_preferences"] = {}
10
 
11
+ # if "user_titles" not in st.session_state:
12
+ # st.session_state["user_titles"] = []
13
 
14
  data = pd.read_pickle("data/2k_titles.pkl")
15
 
 
74
  # Home page. One of the page in Main Header
75
  def home_page():
76
  st.title("Steam Recommendation System")
77
+ # st.session_state
78
 
79
+ if "user_preferences" in st.session_state:
80
+ ids_list = ids_to_titles(st.session_state["user_preferences"])
81
+ preferences = st.multiselect(
82
+ label="Input games you like:",
83
+ options=list(data),
84
+ default=ids_list,
85
+ key="user_titles")
86
+ user_input = generate_app_gamebox(preferences)
87
+ else:
88
+ preferences = st.multiselect(
89
+ label="Input games you like:",
90
+ options=list(data),
91
+ key="user_titles")
92
+ user_input = generate_app_gamebox(preferences)
93
 
94
+ state = st.button("Get recommendation")
95
 
96
  if state:
97
  st.session_state["user_preferences"] = user_input
 
99
  st.markdown("---")
100
  games_recomm(st.session_state["user_preferences"])
101
 
 
 
 
 
102
  # Result page
103
  # Show the list of predictions for active user
104
  def result_page():
easeBased_model.py CHANGED
@@ -85,8 +85,8 @@ class EASE:
85
  output_preds.append([self.item_map[id] for id in top_items.indices.tolist()])
86
  score_preds.append( top_items.values.tolist() )
87
 
88
- print("'\nOutput preds:", output_preds)
89
- print("Score preds:", score_preds)
90
  pred_df['predicted_items'] = output_preds
91
  pred_df['predicted_score'] = score_preds
92
 
 
85
  output_preds.append([self.item_map[id] for id in top_items.indices.tolist()])
86
  score_preds.append( top_items.values.tolist() )
87
 
88
+ # print("'\nOutput preds:", output_preds)
89
+ # print("Score preds:", score_preds)
90
  pred_df['predicted_items'] = output_preds
91
  pred_df['predicted_score'] = score_preds
92
 
func.py CHANGED
@@ -8,12 +8,18 @@ from PIL import Image
8
  data_titles = pd.read_pickle("data/2k_titles.pkl")
9
  data_ids = pd.read_pickle("data/2k_ids.pkl")
10
 
 
 
 
 
 
 
11
  def generate_app_gamebox(titles):
12
- titles_id = []
13
- # selectboxes_id = {}
 
14
 
15
- for title in titles:
16
- titles_id.append(data_titles[title])
17
 
18
  for id in titles_id:
19
  url = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
@@ -33,10 +39,11 @@ def generate_app_gamebox(titles):
33
  return titles_id
34
 
35
  def generate_res_gamebox(ids):
36
- # titles_list = []
 
 
37
 
38
  for id in ids:
39
- # titles_list.append(data_ids[id])
40
  url_page = f"https://store.steampowered.com/app/{id}/"
41
  url_img = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
42
  resp = requests.get(url_img)
@@ -48,6 +55,9 @@ def generate_res_gamebox(ids):
48
 
49
  st.divider()
50
 
 
 
 
51
  # for title in titles_list:
52
  # # url = f"https://store.steampowered.com/app/"
53
  # with st.container():
 
8
  data_titles = pd.read_pickle("data/2k_titles.pkl")
9
  data_ids = pd.read_pickle("data/2k_ids.pkl")
10
 
11
+ def ids_to_titles(ids_list):
12
+ return [data_ids[title] for title in ids_list]
13
+
14
+ def titles_to_ids(titles_list):
15
+ return [data_titles[id] for id in titles_list]
16
+
17
  def generate_app_gamebox(titles):
18
+ """
19
+ Placeholder
20
+ """
21
 
22
+ titles_id = titles_to_ids(titles)
 
23
 
24
  for id in titles_id:
25
  url = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
 
39
  return titles_id
40
 
41
  def generate_res_gamebox(ids):
42
+ """
43
+ Placeholder
44
+ """
45
 
46
  for id in ids:
 
47
  url_page = f"https://store.steampowered.com/app/{id}/"
48
  url_img = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
49
  resp = requests.get(url_img)
 
55
 
56
  st.divider()
57
 
58
+ def combine_hybrid_result():
59
+ pass
60
+
61
  # for title in titles_list:
62
  # # url = f"https://store.steampowered.com/app/"
63
  # with st.container():