Spaces:
Sleeping
Sleeping
Commit
·
b01c3d3
1
Parent(s):
9c3c7e9
Fixing multiselect to preserve user input
Browse files- app.py +18 -14
- easeBased_model.py +2 -2
- 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 |
-
|
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 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
-
state = st.button("Get
|
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 |
-
|
13 |
-
|
|
|
14 |
|
15 |
-
|
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 |
-
|
|
|
|
|
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():
|