TasteEngine / utils /helpers.py
Abdallah4z's picture
Add user creation API and enhance user preference handling in the frontend
28e5413
import pandas as pd
import os
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data")
def load_data():
products = pd.read_csv(os.path.join(DATA_DIR, "products.csv"))
users = pd.read_csv(os.path.join(DATA_DIR, "users.csv"))
ratings = pd.read_csv(os.path.join(DATA_DIR, "ratings.csv"))
return products, users, ratings
def build_user_item_matrix(ratings_df):
return ratings_df.pivot_table(
index="user_id", columns="product_id", values="rating"
)
def get_user_preferences(users_df, user_id):
user = users_df[users_df["user_id"] == user_id]
if user.empty:
return {}
user = user.iloc[0]
return {
"preferred_categories": set(
user["preferred_categories"].split(",")
) if isinstance(user["preferred_categories"], str) else set(),
"budget_min": float(user["budget_min"]),
"budget_max": float(user["budget_max"]),
"favorite_brands": set(
user["favorite_brands"].split(",")
) if isinstance(user["favorite_brands"], str) else set(),
"name": str(user["name"]),
"age": int(user["age"]),
}