garvitcpp commited on
Commit
b105344
·
verified ·
1 Parent(s): 0dbd4b2

Update app/services/recommendation.py

Browse files
Files changed (1) hide show
  1. app/services/recommendation.py +9 -5
app/services/recommendation.py CHANGED
@@ -7,22 +7,26 @@ logger = logging.getLogger(__name__)
7
 
8
  class FlexibleRecipeRecommendationSystem:
9
  def __init__(self, csv_file_path, precomputed_dir):
10
- self.feature_weights = {
11
  'ingredients': 0.15, 'category': 0.25, 'dietary': 0.20,
12
  'calories': 0.10, 'time': 0.10, 'keywords': 0.10, 'keywords_name': 0.10
13
  }
14
  self.image_search_service = ImageSearchService()
15
- self.data = load_or_create_data(csv_file_path, precomputed_dir, self.feature_weights)
 
 
 
 
 
 
16
 
17
- async def get_recommendations(self, category=None, dietary_preference=None, ingredients=None,
18
- calories=None, time=None, keywords=None, keywords_name=None, top_n=6):
19
  return await get_top_recommendations(
20
  self.data['df'], self.data['combined_matrix'],
21
  self.data['tfidf_vectorizer_ingredients'],
22
  self.data['tfidf_vectorizer_keywords'],
23
  self.data['tfidf_vectorizer_keywords_name'],
24
  self.data['category_dummies'], self.data['scaler'],
25
- self.feature_weights, self.image_search_service,
26
  category, dietary_preference, ingredients,
27
  calories, time, keywords, keywords_name, top_n
28
  )
 
7
 
8
  class FlexibleRecipeRecommendationSystem:
9
  def __init__(self, csv_file_path, precomputed_dir):
10
+ self.default_feature_weights = {
11
  'ingredients': 0.15, 'category': 0.25, 'dietary': 0.20,
12
  'calories': 0.10, 'time': 0.10, 'keywords': 0.10, 'keywords_name': 0.10
13
  }
14
  self.image_search_service = ImageSearchService()
15
+ self.data = load_or_create_data(csv_file_path, precomputed_dir, self.default_feature_weights)
16
+
17
+ async def get_recommendations(self, category=None, dietary_preference=None, ingredients=None,
18
+ calories=None, time=None, keywords=None, keywords_name=None,
19
+ top_n=6, feature_weights=None):
20
+ # Use the provided feature_weights, or fall back to the default if not provided
21
+ weights = feature_weights or self.default_feature_weights
22
 
 
 
23
  return await get_top_recommendations(
24
  self.data['df'], self.data['combined_matrix'],
25
  self.data['tfidf_vectorizer_ingredients'],
26
  self.data['tfidf_vectorizer_keywords'],
27
  self.data['tfidf_vectorizer_keywords_name'],
28
  self.data['category_dummies'], self.data['scaler'],
29
+ weights, self.image_search_service,
30
  category, dietary_preference, ingredients,
31
  calories, time, keywords, keywords_name, top_n
32
  )