[+] Log recommendations

pull/109/head
Azalea Gui 2025-01-12 04:38:43 -05:00
parent 767d396171
commit f6a5a03346
2 changed files with 7 additions and 4 deletions

View File

@ -209,13 +209,15 @@ abstract class GameApiController<T : IUserData>(val name: String, userDataClass:
SELECT user_id, music_id, count(*) as count SELECT user_id, music_id, count(*) as count
FROM ${tableName}_user_playlog_view FROM ${tableName}_user_playlog_view
GROUP BY user_id, music_id; GROUP BY user_id, music_id;
""".trimIndent()).exec.numCsv("user_id", "music_id", "count") """.trimIndent()).exec.also {
logger.info("Recommender fetched ${it.size} plays")
}.numCsv("user_id", "music_id", "count")
} }
@API("recommender-update") @API("recommender-update")
fun recommenderUpdate(@RP botSecret: String, @RB data: Map<Long, List<Int>>) { fun recommenderUpdate(@RP botSecret: String, @RB data: Map<Long, List<Int>>) {
if (botSecret != botProps.secret) 403 - "Invalid Secret" if (botSecret != botProps.secret) 403 - "Invalid Secret"
recommendedMusic = data recommendedMusic = data
logger.info("Recommender updated with ${data.size} users")
} }
} }

View File

@ -2,6 +2,7 @@
This is a music recommendation system for maimai2 using implicit ALS. This is a music recommendation system for maimai2 using implicit ALS.
""" """
import json import json
from io import StringIO
from pathlib import Path from pathlib import Path
import pandas as pd import pandas as pd
@ -12,7 +13,7 @@ from hypy_utils.logging_utils import setup_logger
BASE_URL = "https://aquadx.net/aqua/api/v2/game" BASE_URL = "https://aquadx.net/aqua/api/v2/game"
GAME = "mai2" GAME = "mai2"
BOT_SECRET = "meow" BOT_SECRET = "hunter2"
log = setup_logger() log = setup_logger()
@ -23,7 +24,7 @@ if __name__ == '__main__':
# data = pd.read_csv("data.csv") # data = pd.read_csv("data.csv")
resp = requests.get(f"{BASE_URL}/{GAME}/recommender-fetch", params={"botSecret": BOT_SECRET}) resp = requests.get(f"{BASE_URL}/{GAME}/recommender-fetch", params={"botSecret": BOT_SECRET})
assert resp.status_code == 200, f"Failed to fetch data: {resp.status_code} {resp.text}" assert resp.status_code == 200, f"Failed to fetch data: {resp.status_code} {resp.text}"
data = pd.read_csv(resp.text) data = pd.read_csv(StringIO(resp.text))
# Create a user-item matrix # Create a user-item matrix
log.info("Creating user-item matrix...") log.info("Creating user-item matrix...")