一、 项目简介
在信息大爆炸的今天,如何从海量的影视资源中快速寻找到符合用户口味的电影,是泛娱乐平台亟需解决的核心痛点。本项目(MovieRecSystemWeb)是一个基于 Java Spring Boot 构建的现代化智能电影推荐系统。
系统不仅实现了传统电影网站的浏览、检索、评分、评论等基础核心功能,更在推荐策略上进行了深度创新:通过融合贝叶斯平滑均分推荐、群体协同过滤以及前沿的Agentic RAG 无向量化大模型智能推荐技术,打破了传统搜索只能依靠关键字的枷锁。用户可以用最自然的语言(如“推荐几部周星驰演的、评分比较高的喜剧片”),系统即可精准洞察用户意图,从而为千万级用户提供懂你所想的高质量推荐体验。
二、 开发工具与技术栈
项目采用了主流的前后端分离思路及微服务化部署模式,具体技术栈如下:
- 后端主服务: Java 8 / 11 + Spring Boot 框架
- 持久层与ORM: MyBatis-Plus (简化单表与连表 CRUD)
- 大模型引擎(微服务): Python + Flask + OpenAI Compatible API(对接如通义千问等大模型),实现 Agentic RAG 自然语义理解解析
- 前端与展示层: HTML5 + CSS3 + Bootstrap 4 + Thymeleaf 模板引擎 + JavaScript
- 数据存储: 关系型数据库 MySQL 8.x
- 环境与控制: IntelliJ IDEA / PyCharm 开发工具、Maven
三、 系统功能设计
本项目在前后端划分了完整的生态体系,功能模块逻辑清晰。
1. 前台用户端
- 用户认证与动态交互: 支持用户注册、登录、个人主页头像修改,全端数据与后台实时互通。
- 发现与浏览: 大分类电影目录导航(科幻、动作、悬疑等)、按条件筛选以及基于内容标题的输入检索。
- 社区互动体系: 电影详情页内嵌评分控件(1-5星打分)、文字短评发表,以及“点击红心收藏”能力。
- 个人成长足迹: 聚合用户的所有观影足迹,涵盖“我看过的电影”、“我收藏的电影”以及“我打分和评论的历史记录”。
- AI 智能对话推荐: 提供悬浮的对话式电影推荐体系。用户发起任意长尾与非标需求,后端 Python 代理即可解析意图并对接自有数据库数据,反馈包含电影海报、评分和推荐理由的拟人化卡片。
2. 后台管理端
- 影片池维护: 运营人员可发布及下架影片,设置演职员表和外部超链接(如豆瓣链接),维护电影类型字典。
- 用户风控治理: 用户全生命周期的展示,以及对违规违规评论的一键删除。
- 全景统计数据板: 通过 ECharts 数据可视化展示近三十天的活跃走势与各类电影的总量占比。
四、 推荐算法实现
传统的影视平台要么过度依赖搜索词,要么需要使用昂贵的向量数据库及词嵌入微调技术。本系统通过以下三重算法构建了递进分层的推荐体系:
1. 结构化排行:贝叶斯平滑均分 (Bayesian Average)
为了解决小众电影仅因 2 个死忠粉打“全5星”从而霸榜的伪热门现象,我们在全局热门排行和高分排行中融入了“贝叶斯平滑”。
引入“缓冲常数”和“全平台平均分”,即使是一部冷门作品,其综合得分也会向大盘收敛。只有通过被大量用户公允投票的高分电影,才能攀升至首页榜单。
2. 人群协同与扩召回:协同过滤推荐 (Co-Rating Association)
当用户浏览某部具体电影的详情页时,系统会在右侧底部推送“喜欢了这部电影的用户,还喜欢啥”的内容。这是一种基于隐式 Item-based 关联的思想:通过追踪曾给当前正在浏览电影打过高分的用户集合,并以此集合再聚合他们评分过的其它热门电影进行推荐。
3. Agentic RAG 智能重排推荐(免向量搜索)
这是打破行业常规的一点。我们不再把电影剧情丢进去进行毫无主次之分的向量比对,而是使用语义提取+本地关联范式实现:
- 核心意图抽取(JSON Mode Function Calling): 引入 LLM 大脑,将复杂的话术抽丝剥茧。比如从“有没有评分在8以上,国内拍的悬疑片”精准提取出对应的维度条件:
{ genre: "悬疑", region: "中国", min_score: 8.0 }。 - 零幻觉的本地检索: 用抽取好的维度,下推至系统的 MySQL 引擎执行组合查找计算与精准排序。
- 懂你的情绪润色器: 最后我们将数据库里真实存在且排行靠前的影片,再次上报给大模型,让大模型像电影专家一样写出引人瞩目的多层级推荐文案。
五、 数据库设计
1. 表结构设计:
- 核心表包括电影表、电影类型表、用户评分表等
- 关系设计:评分、收藏、浏览、评论表关联用户与电影
- 类型与电影建立一对多关系
- 使用Navicat进行数据库建模和管理
2. SQL实现:
- MyBatis-Plus基础CRUD操作
- 自定义@Select注解处理复杂统计查询
- 排序和分页查询优化
六、电影数据获取
1. 数据来源:
- 网络爬虫采集公开电影数据
- 数据清洗和格式化处理
- 数据库批量导入优化
- 定期更新维护机制
注:数据采集仅用于学习研究目的。商业使用需获得合法授权。
七、 总结
本系统(MovieRecSystemWeb)在最终整合 Spring Boot 技术中台与 Python Agentic RAG 的跨栈融合时,充分验证了基于本地数据库的精准结构化属性与大模型强大推理能力的结合——这往往比搭建复杂的全链路向量检索具备更高的可控性。
系统截图
1. 系统首页:

2. 电影详情页:

3. 按类别浏览:

4. AI智能推荐:

5. 用户协同过滤推荐:

6. 后台管理首页:

需要源码可联系

976

被折叠的 条评论
为什么被折叠?



