kingking111009 Claude commited on
Commit
233b45a
Β·
1 Parent(s): cba21f2

🌟 Fix recipe rating display: use actual avg_rating as confidence and increase minimum review threshold

Browse files

- Updated confidence calculation to use avg_rating/5.0 instead of similarity score
- This ensures iOS app displays correct star ratings (4-5 stars for filtered recipes)
- Increased min_reviews from 2 to 5 for better quality filtering
- Now only high-quality recipes (4+ stars, 5+ reviews) will be recommended

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +6 -2
app.py CHANGED
@@ -78,7 +78,7 @@ def safe_eval_list(x):
78
  return [item.strip() for item in x.split(',') if item.strip()]
79
  return []
80
 
81
- def filter_by_ratings(recipes_df, interactions_df, min_rating=4.0, min_reviews=2):
82
  """Filter recipes to only include those with good ratings"""
83
  try:
84
  print(f"πŸ“Š Processing {len(interactions_df)} interactions for rating filter...")
@@ -593,6 +593,10 @@ async def get_recipe_suggestions(request: RecipeRequest):
593
  if pd.isna(recipe_minutes) or recipe_minutes <= 0:
594
  recipe_minutes = 30
595
 
 
 
 
 
596
  db_recipe = DatabaseRecipe(
597
  id=int(recipe['id']),
598
  name=str(clean_name),
@@ -603,7 +607,7 @@ async def get_recipe_suggestions(request: RecipeRequest):
603
  servings=recipe.get('servings', recipe.get('n_ingredients', 4)),
604
  nutrition=nutrition,
605
  tags=recipe['tags'],
606
- confidence=float(recipe.get('similarity', 0.5))
607
  )
608
  recommendations.append(db_recipe)
609
 
 
78
  return [item.strip() for item in x.split(',') if item.strip()]
79
  return []
80
 
81
+ def filter_by_ratings(recipes_df, interactions_df, min_rating=4.0, min_reviews=5):
82
  """Filter recipes to only include those with good ratings"""
83
  try:
84
  print(f"πŸ“Š Processing {len(interactions_df)} interactions for rating filter...")
 
593
  if pd.isna(recipe_minutes) or recipe_minutes <= 0:
594
  recipe_minutes = 30
595
 
596
+ # Use avg_rating as confidence (normalized to 0-1 scale for 5-star display)
597
+ # If avg_rating exists, use it; otherwise fallback to similarity or 0.8 for high-quality recipes
598
+ recipe_confidence = float(recipe.get('avg_rating', 4.5)) / 5.0 # Convert 4-5 star rating to 0.8-1.0 scale
599
+
600
  db_recipe = DatabaseRecipe(
601
  id=int(recipe['id']),
602
  name=str(clean_name),
 
607
  servings=recipe.get('servings', recipe.get('n_ingredients', 4)),
608
  nutrition=nutrition,
609
  tags=recipe['tags'],
610
+ confidence=recipe_confidence
611
  )
612
  recommendations.append(db_recipe)
613