Dietify 智能饮食推荐系统全解析 —— 当协同过滤遇上营养科学,构建你的私人饮食管家

发布时间:2026-07-29 08:04

科技生活中的健康饮食:通过营养追踪app分析饮食结构,科学搭配营养餐。 #生活知识# #科技生活# #科技美食#

一款融合 UPICF 改进协同过滤与 MOPSO 多目标粒子群优化算法的开源智能饮食推荐平台

在信息爆炸的时代, 推荐系统 早已成为我们生活中不可或缺的一部分。但当推荐算法遇上营养科学,会碰撞出怎样的火花?今天,我们将深度剖析一个来自 Gitee 的优秀开源项目——Dietify。它不仅是一个简单的菜谱应用,更是一个集用户画像建模个性化推荐精准营养规划于一体的综合性技术解决方案。

项目地址:https://gitee.com/cqiemushuo/diet

目录

项目背景与定位技术架构全景图核心算法深度解密 UPICF 推荐算法:让推荐真正“懂你”MOPSO 营养规划算法:科学配餐的最优解 功能模块一览快速上手指南项目亮点与学习价值结语与引流

项目背景与定位

Dietify 致力于解决传统饮食类 App 的两大痛点:

推荐同质化:所有用户看到的推荐结果千篇一律,缺乏个性化。营养规划缺失:只推荐菜品,不考虑是否符合用户的个人健康需求。

Dietify 的核心理念是:让饮食推荐更懂你,让营养规划更科学。它通过三大核心特色脱颖而出:

特色

说明

智能推荐

基于 UPICF 算法的个性化菜品推荐

营养规划

基于 MOPSO 算法的精准营养配餐方案

多端适配

支持 APP、小程序、H5,一套代码多端运行

用户画像

深度学习用户口味偏好,持续优化推荐效果

⚖️ 营养均衡

结合《中国居民膳食营养素参考摄入量》科学配餐

管理后台

基于若依框架的完整后台管理系统

️ 技术架构全景图

Dietify 采用清晰的三层架构设计,各层职责明确,易于扩展和维护。

️ 后端核心 —— Dietify-back(基于若依框架)

技术栈:

- Spring Boot 2.5.15

- MyBatis Plus

- Spring Security + JWT

- MySQL 8.0

- Redis

- Swagger 3.0

职责:处理业务逻辑、用户认证、权限管理、数据持久化,并提供后台管理界面。

移动端应用 —— Dietify-App-master( UniApp )

技术栈:

- UniApp 3.0+

- Vue.js 2.6+

- uni-ui

- ECharts 5.4

职责:用户交互界面,一套代码编译为 APP、小程序、H5,实现跨平台一致体验。

算法 微服务 —— recommend-python(Python)

技术栈:

- Python 3.8+

- FastAPI

- Uvicorn

- 核心算法: UPICF, MOPSO, TF-IDF

职责:独立部署的智能大脑,通过 API 与 Java 后端通信,负责计算密集型的推荐与优化任务。

微服务设计亮点:将算法服务独立出来,既避免了 Java 与 Python 混合开发的复杂性,又便于未来对算法模型进行独立升级和扩展。

核心算法深度解密

Dietify 的灵魂在于其两大核心算法:UPICFMOPSO

UPICF 推荐算法:让推荐真正“懂你”

传统的协同过滤算法往往只依赖用户-物品交互矩阵,存在数据稀疏和冷启动问题。Dietify 提出的 UPICF(User Profile Improved Collaborative Filtering) 算法在传统协同过滤基础上进行了三重改进:

1. 用户画像建模(基于 TF-IDF)

系统不再把用户看作一个简单的 ID,而是通过 TF-IDF 算法计算用户对不同属性(如“辣”、“清淡”、“高蛋白”)的兴趣权重,构建精细的用户画像。

# 示例:用户画像向量

user_profile = {

"口味_辣": 0.85,

"食材_鸡肉": 0.62,

"营养_高蛋白": 0.91,

...

}

2. 时间权重修正(参考艾宾浩斯遗忘曲线)

用户的兴趣会随时间变化。UPICF 引入时间权重函数,参考艾宾浩斯遗忘曲线,对历史行为进行衰减,使推荐结果更能反映用户当前的口味。

def time_weight(days_ago):

return math.exp(-days_ago / 30)

3. 相似度计算优化

采用修正的余弦相似度,并结合用户影响因子,进一步提升相似用户寻找的准确性。

最终,算法为用户生成 TOP-N 个性化推荐列表,有效解决了数据稀疏和兴趣漂移问题。

MOPSO 营养规划算法:科学配餐的最优解

营养规划是一个典型的多目标优化问题:如何在满足能量、蛋白质、脂肪、碳水化合物、膳食纤维等多种营养素需求(在推荐摄入量 RNI 和可耐受最高摄入量 UL 之间)的同时,让菜品组合更符合用户口味?

Dietify 引入多目标粒子群优化算法(MOPSO) 来解决这一复杂问题。

算法流程 目标设定:以《中国居民膳食营养素参考摄入量》为依据,根据用户个人信息计算每日营养素需求范围(RNI~UL)。食材编码与迭代:将菜品及其核心食材作为优化变量,通过粒子群算法在食材组合空间中搜索“帕累托最优解”。方案生成:从最优解集中为每个用户生成多套可选营养配餐方案,并计算每套方案的营养偏差率(≤8%),确保符合健康标准。三餐分配:遵循“早餐:午餐:晚餐 = 3:4:3”的科学能量分配比例。

# MOPSO 输出示例:一套营养配餐方案

nutrition_plan = {

"早餐": ["燕麦粥", "水煮蛋", "苹果"],

"午餐": ["香煎鸡胸肉", "糙米饭", "西兰花"],

"晚餐": ["清蒸鲈鱼", "杂粮馒头", "凉拌菠菜"],

"营养偏差率": 5.2%,

"总热量": 1850 kcal

}

✨ 功能模块一览

Dietify 的功能覆盖了从用户注册到饮食记录的全流程,模块划分清晰,便于学习和 二次开发 。

身份验证模块 手机号注册/登录短信验证码集成图形验证码防护密码找回功能 首页展示模块 营养知识轮播图快捷功能入口热门菜品 TOP10个性化内容推荐 智能推荐模块(核心) 个性化菜品推荐(UPICF)冷启动处理(新用户热门推荐)实时反馈与模型更新 营养规划模块(核心) 营养需求分析(基于用户信息)智能配餐(MOPSO)多方案生成与对比营养偏差率计算 菜品搜索模块 智能模糊搜索热门搜索标签搜索历史管理多维度筛选排序 用户中心模块 个人信息管理饮食习惯设置健康目标管理收藏与饮食记录 ️ 后台管理模块(基于若依) 用户管理菜品/食材管理营养数据管理系统监控与数据统计

快速上手指南

想要亲自体验 Dietify?按照以下步骤,5 分钟即可在本地跑起来!

环境要求

组件

版本要求

JDK

8+

MySQL

8.0+

Redis

6.0+

Node.js

14+

Maven

3.6+

Python

3.8+

HBuilderX

可选(用于 UniApp 开发)

1️⃣ 克隆项目

git clone https://gitee.com/cqiemushuo/diet.git

cd diet

2️⃣ 配置数据库

CREATE DATABASE dietify_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

mysql -u root -p dietify_db < sql/diet.sql

3️⃣ 启动后端服务

cd Dietify-back

mvn clean package

java -jar diet-admin/target/diet-admin.jar

后端服务默认运行在 http://localhost:8080

4️⃣ 启动 Python 算法服务

cd recommend-python

pip install -r requirements.txt

uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload

算法服务默认运行在 http://localhost:8001

5️⃣ 运行移动端应用

cd Dietify-App-master

npm install

npm run dev:h5

访问 http://localhost:8081 即可看到移动端界面。

小贴士:记得修改 config.js 中的后端 API 地址和算法服务地址。

项目亮点与学习价值

Dietify 不仅仅是一个开源项目,更是一份宝贵的学习资源:

学习价值 算法与工程实践的完美结合:不仅实现了前沿的推荐和优化算法,更展示了如何将这些算法工程化,以微服务形式集成到 Spring Boot 应用中。完整的业务闭环:从用户注册、画像采集、智能推荐、营养规划到饮食记录,涵盖健康类应用的完整业务流程。优秀的技术选型后端:基于若依框架,学习快速构建后台管理系统的最佳实践。算法:独立 Python 微服务,体现服务拆分思想。前端:UniApp 跨端方案,一次学习多端复用。 详尽的文档支持:项目包含 API 接口文档、数据库设计、架构说明、算法模型说明等,学习曲线平滑。 可扩展方向 接入更多数据源(如可穿戴设备数据)引入深度学习模型(如 Wide&Deep)提升推荐效果增加社交功能(如饮食分享、社区)商业化包装(会员服务、定制食谱)

结语与引流

Dietify 是一个充满潜力的开源项目,它将前沿的智能算法、科学的营养知识与成熟的工程架构融为一体。无论你是对推荐系统多目标优化算法感兴趣的研究者,还是希望学习 Spring Boot + UniApp + Python 微服务全栈开发的工程师,Dietify 都值得你深入研究和学习。

项目地址:https://gitee.com/cqiemushuo/diet

在线体验

管理员:admin / admin123普通用户:user / user123

如果这个项目对你有帮助,请给作者一个 Star 支持一下!

欢迎在评论区留言交流,如果你基于本项目做了有趣的二次开发,也欢迎分享你的经验!

版权声明:本文为原创技术博客,转载请保留出处。项目遵循 AGPL-3.0 开源协议 。

网址:Dietify 智能饮食推荐系统全解析 —— 当协同过滤遇上营养科学,构建你的私人饮食管家 https://www.yuejiaxmz.com/news/view/1461473

相关内容

基于协同过滤推荐算法的食品推荐系统
基于VUE的智能健康饮食推荐系统[VUE]
【#营养膳食管理系统#:你的私人AI营养师】
基于情感分析的智慧健康饮食推荐系统开题报告
科技助力营养科智能饮食指导系统.docx
基于协同过滤的校内餐厅推荐系统设计与实现(源码+论文)
结合科技与营养学,智能饮食运动建议系统的开发与应用
人工智能在个性化健康饮食的智能推荐系统研究.docx
健身营养个性化推荐系统的构建及应用
基于springboot的健康饮食营养管理系统

随便看看