From 5543a1f6b093e3727d15f629df1fdd9060d19974 Mon Sep 17 00:00:00 2001
From: ruanshuoyang <2286942422@qq.com>
Date: Sun, 30 Nov 2025 22:19:19 +0800
Subject: [PATCH] =?UTF-8?q?'README=E6=96=87=E4=BB=B6=E5=AE=8C=E5=96=84'?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 252 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 218 insertions(+), 34 deletions(-)
diff --git a/README.md b/README.md
index 3b2c9b9..0355971 100644
--- a/README.md
+++ b/README.md
@@ -1,56 +1,240 @@
-# java
+# FilmFinder - 智能电影推荐系统
-FilmFinder - 智能电影推荐系统
-
基于Flask与AI的个性化电影发现平台
项目简介 • 核心特性 • 技术栈 • 系统架构 • 快速开始 • 项目文档
-🎬 项目简介
-FilmFinder 是一个基于Web的智能电影推荐系统,旨在解决用户在影视内容爆炸式增长时代面临的"选择困难"问题。系统通过多维度筛选、AI智能搜索和个性化推荐算法,帮助用户快速发现符合个人喜好的电影。
+FilmFinder 是一个基于 Flask 开发的智能电影推荐系统,集成了协同过滤推荐算法、AI 台词搜索、TMDB 电影数据导入等先进功能,为用户提供个性化的电影推荐服务。
-目标用户:电影爱好者、有观影需求但缺乏明确目标的普通用户、希望探索冷门佳片的观众。
+## ✨ 主要特性
-✨ 核心特性
-🎯 智能搜索
-传统搜索:支持按电影名称关键词快速检索
+### 🎬 核心功能
+- **个性化推荐**:基于用户标签和协同过滤算法的智能推荐
+- **电影搜索**:支持按电影名称、类型搜索,以及 AI 台词搜索
+- **用户系统**:完整的用户注册、登录、标签选择功能
+- **收藏与评分**:用户可以收藏喜欢的电影并为其评分
+- **电影详情**:详细的电影信息展示,包括封面、简介、评分等
-AI台词搜索:集成DeepSeek大模型,支持通过经典台词、角色名、电影描述进行智能语义匹配
+### 🤖 AI 功能
+- **AI 台词搜索**:通过输入经典台词或角色名称,AI 智能识别并推荐相关电影
-🤖 个性化推荐
-基于内容的推荐:分析用户收藏、评分行为,构建用户兴趣向量
+### 🎯 管理员功能
+- **电影管理**:添加、删除电影,支持批量导入
+- **TMDB 导入**:从 The Movie Database (TMDB) API 导入电影数据
+- **数据统计**:用户行为分析、电影热度统计、数据可视化
-余弦相似度算法:计算用户兴趣与电影特征的匹配度,实现精准推荐
+### 🎨 界面设计
+- **现代化 UI**:使用 Tailwind CSS 构建的响应式界面
+- **数据可视化**:使用 ECharts 和 Chart.js 展示统计数据
+- **用户体验优化**:流畅的交互体验和友好的错误提示
-冷启动处理:新用户通过兴趣标签选择(5-10个)获得初始推荐
+## 🛠️ 技术栈
-🎨 用户体验
-多维度筛选:支持按类型、评分、地区等多条件组合筛选
+### 后端
+- **Flask 2.3.3** - Python Web 框架
+- **SQLAlchemy 3.0.5** - ORM 数据库操作
+- **SQLite** - 轻量级数据库
+- **NumPy 1.24.3** - 数值计算(用于推荐算法)
+- **OpenAI API** - AI 台词搜索功能
+- **Requests 2.31.0** - HTTP 请求库
-响应式设计:基于Tailwind CSS,完美适配手机和电脑屏幕
+### 前端
+- **Tailwind CSS** - 实用优先的 CSS 框架
+- **ECharts** - 数据可视化图表库
+- **Chart.js** - 另一个图表库
+- **Iconify** - 图标库
-交互式操作:收藏电影、1-5星评分、个人中心管理
+### 外部 API
+- **TMDB API** - 电影数据库 API
+- **DashScope API** - 阿里云 AI 服务(用于台词搜索)
-👨💼 管理员功能
-电影库管理:手动添加/删除电影
+## 📋 系统要求
-批量导入:通过TMDB API实现电影数据批量导入
+- Python 3.7+
+- pip(Python 包管理器)
-数据统计:查看用户行为数据、电影热度排行
+## 🚀 快速开始
-🛠 技术栈
-后端技术
-框架:Flask (Python)
+### 1. 克隆项目
-ORM:SQLAlchemy
+```bash
+git clone
+cd FilmFinder
+```
-数据库:SQLite
+### 2. 安装依赖
-算法库:NumPy (余弦相似度计算)
+```bash
+pip install -r requirements.txt
+```
-AI集成:DeepSeek API (智能搜索)
+### 3. 配置环境变量(可选)
-前端技术
-基础技术:HTML5, CSS3, JavaScript
+如果需要使用 AI 台词搜索功能,需要设置 DashScope API 密钥:
-样式框架:Tailwind CSS
+```bash
+# Windows
+set DASHSCOPE_API_KEY=your_api_key_here
-模板引擎:Jinja2
+# Linux/Mac
+export DASHSCOPE_API_KEY=your_api_key_here
+```
+
+> **注意**:如果不设置 API 密钥,系统会自动切换到演示模式,仍可使用部分功能。
+
+### 4. 初始化数据库
+
+数据库会在首次运行时自动创建。如果需要重置数据库,可以运行:
+
+```bash
+python reset_db.py
+```
+
+### 5. 启动应用
+
+```bash
+python app.py
+```
+
+应用将在 `http://127.0.0.1:5000` 启动。
+
+### 6. 访问系统
+
+- 打开浏览器访问 `http://127.0.0.1:5000`
+- 默认管理员账户:
+ - 用户名:`admin`
+ - 密码:`123456`
+
+## 📖 使用指南
+
+### 普通用户
+
+1. **注册账户**
+ - 访问注册页面,创建新账户
+ - 首次登录需要选择至少 3 个电影标签(最多 10 个)
+
+2. **浏览电影**
+ - 首页会显示基于您选择的标签的推荐电影
+ - 点击"推荐"页面查看个性化推荐
+
+3. **搜索电影**
+ - 使用搜索框按电影名称搜索
+ - 使用 AI 台词搜索功能,输入经典台词或角色名称
+
+4. **收藏与评分**
+ - 在电影详情页可以收藏电影
+ - 可以为电影评分(1-5 星)
+
+### 管理员
+
+1. **登录管理员账户**
+ - 使用默认管理员账户登录
+
+2. **添加电影**
+ - 访问"管理员" -> "添加电影"
+ - 填写电影信息(标题、类型、年份、简介、封面等)
+
+3. **从 TMDB 导入**
+ - 访问"管理员" -> "TMDB 导入"
+ - 搜索电影并一键导入
+
+4. **查看统计**
+ - 访问"管理员" -> "数据统计"
+ - 查看用户行为、电影热度等数据可视化
+
+5. **删除电影**
+ - 在电影详情页或管理后台删除电影
+ - 系统会自动清理相关的用户行为数据
+
+## 📁 项目结构
+
+```
+FilmFinder/
+├── app.py # Flask 主应用文件
+├── models.py # 数据库模型定义
+├── requirements.txt # Python 依赖包列表
+├── reset_db.py # 数据库重置脚本
+├── auto-add-script.py # 自动添加电影脚本
+├── clearup.py # 清理脚本
+├── movies.json # 电影数据 JSON 文件
+├── instance/ # Flask 实例文件夹(数据库文件)
+├── static/ # 静态资源文件夹
+│ ├── covers/ # 电影封面图片
+│ └── vendor/ # 第三方前端库
+└── templates/ # HTML 模板文件夹
+ ├── index.html # 首页
+ ├── login.html # 登录页
+ ├── register.html # 注册页
+ ├── detail.html # 电影详情页
+ ├── recommend.html # 推荐页
+ ├── admin_dashboard.html # 管理员后台
+ └── ...
+```
+
+## 🔧 配置说明
+
+### 数据库配置
+
+默认使用 SQLite 数据库,数据库文件位于 `instance/movie_recommend.db`。
+
+如需修改数据库配置,编辑 `app.py` 中的数据库 URI:
+
+```python
+app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///movie_recommend.db'
+```
+
+### TMDB API 配置
+
+系统已内置 TMDB API 密钥,支持多个镜像地址,自动回退机制确保在网络不稳定时仍可使用本地数据。
+
+### 推荐算法
+
+系统使用基于协同过滤的推荐算法:
+- 基于用户选择的标签进行初始推荐
+- 根据用户行为(评分、收藏)动态调整推荐
+- 使用余弦相似度计算电影相似性
+
+## 🐛 常见问题
+
+### Q: 启动时提示数据库错误?
+A: 删除 `instance/movie_recommend.db` 文件,重新运行应用会自动创建数据库。
+
+### Q: AI 台词搜索不工作?
+A: 检查是否设置了 `DASHSCOPE_API_KEY` 环境变量。未设置时会自动切换到演示模式。
+
+### Q: TMDB 导入失败?
+A: 系统支持多个 TMDB 镜像,会自动尝试连接。如果所有镜像都失败,会使用本地电影数据库。
+
+### Q: 如何重置管理员密码?
+A: 运行 `reset_db.py` 重置数据库,或直接在数据库中修改密码哈希值。
+
+## 📝 开发说明
+
+### 添加新功能
+
+1. 在 `app.py` 中添加路由和业务逻辑
+2. 如需新数据模型,在 `models.py` 中定义
+3. 在 `templates/` 中添加对应的 HTML 模板
+
+### 数据库迁移
+
+当前使用 SQLite,如需迁移到其他数据库:
+1. 修改 `app.py` 中的数据库 URI
+2. 运行应用,SQLAlchemy 会自动创建表结构
+
+## 📄 许可证
+
+本项目为课程设计项目,仅供学习使用。
+
+
+
+## 🙏 致谢
+
+- [The Movie Database (TMDB)](https://www.themoviedb.org/) - 提供电影数据 API
+- [DashScope](https://dashscope.aliyun.com/) - 提供 AI 服务
+- Flask 社区 - 优秀的 Python Web 框架
+
+## 📞 联系方式
+
+如有问题或建议,欢迎提交 Issue 或 Pull Request。
+
+---
+
+**FilmFinder** - 发现你的下一部好电影 🎬
-数据可视化:ECharts (管理员统计)
\ No newline at end of file