lzy 1 год назад
Родитель
Сommit
2caeb25aea
1 измененных файлов с 481 добавлено и 3 удалено
  1. 481 3
      FilmDraw-prod/UML.md

+ 481 - 3
FilmDraw-prod/UML.md

@@ -1,13 +1,491 @@
+# 类图
+```
+1. 个性化推荐模块
+
+实体类:
+User:表示用户的信息。
+Recommendation:表示生成的推荐列表。
+WatchHistory:表示用户的观看历史。
+Rating:表示用户的评分记录。
+
+控制类:
+RecommendationEngine:处理推荐逻辑。
+DataProcessor:进行数据预处理。
+RecommendationModel:表示推荐模型。
+
+边界类:
+RecommendationView:表示推荐展示界面。
+```
+
+```
+2. AI陪聊助手模块
+
+实体类:
+UserProfile:表示用户的个人资料。
+Character:表示可选的角色。
+Dialogue:表示对话内容。
+
+控制类:
+Chatbot:表示AI陪聊助手。
+
+边界类:
+DialogueView:表示对话界面。
+```
+
+```
+3. 社区模块
+
+实体类:
+Post:表示用户发布的帖子。
+Comment:表示用户对帖子的评论。
+Topic:表示讨论话题。
+
+控制类:
+PostManager:管理帖子和评论的逻辑。
+Moderator:负责审核内容。
+
+边界类:
+CommunityView:表示社区模块的界面。
+```
+
+```plantuml
+@startuml
+package "个性化推荐模块" {
+    class User {
+        +String userId       // 用户ID
+        +String name         // 用户姓名
+        +int age             // 用户年龄
+        +String gender       // 用户性别
+        +String avatar       // 用户头像
+        +List watchHistory  // 用户观看历史
+        +List ratings // 用户评分记录
+    }
+
+    class WatchHistory {
+        +String mediaId      // 观看的影视剧ID
+        +Date watchDate      // 观看日期
+    }
+
+    class Rating {
+        +String mediaId      // 评分的影视剧ID
+        +int score           // 用户评分
+    }
+
+    class Recommendation {
+        +List mediaList // 推荐的影视剧列表
+    }
+
+    class RecommendationEngine {
+        +List generateRecommendations(User user)
+    }
+
+    class DataProcessor {
+        +void preprocessData(List users)
+    }
+
+    class RecommendationModel {
+        +void trainModel(List trainingData) // 训练推荐模型
+        +List predict(User user) // 根据用户预测推荐列表
+    }
+
+    class RecommendationView {
+        +void displayRecommendations(List recommendations)
+    }
+}
+
+package "AI陪聊助手模块" {
+    class UserProfile {
+        +String userId       // 用户ID
+        +String preferences   // 用户偏好设置
+        +String avatar        // 用户头像
+    }
+
+    class Character {
+        +String name         // 角色名称
+        +String background    // 角色背景信息
+    }
+
+    class Dialogue {
+        +String userInput    // 用户输入
+        +String botResponse   // AI的响应
+    }
+
+    class Chatbot {
+        +String startChat(UserProfile userProfile)
+        +String generateResponse(Dialogue dialogue)
+    }
+
+    class DialogueView {
+        +void displayDialogue(Dialogue dialogue)
+    }
+}
+
+package "社区模块" {
+    class Post {
+        +String content      // 帖子内容
+        +User author         // 帖子的作者
+        +List comments // 帖子的评论列表
+        +int likes           // 帖子的点赞数
+    }
+
+    class Comment {
+        +String content      // 评论内容
+        +User author         // 评论的作者
+        +Post post           // 评论关联的帖子
+    }
+
+    class Topic {
+        +String title        // 话题标题
+        +List posts    // 话题下的帖子列表
+    }
+
+    class PostManager {
+        +void createPost(Post post) // 创建新帖子
+        +void addComment(Post post, Comment comment)
+    }
+
+    class Moderator {
+        +void reviewContent(Post post) // 审核帖子内容
+        +void approveContent(Post post) // 审核通过
+        +void rejectContent(Post post) // 审核不通过
+    }
+
+    class CommunityView {
+        +void displayTopics(List topics)
+        +void displayPost(Post post)
+    }
+}
+
+User "1" -- "1..*" WatchHistory
+User "1" -- "1..*" Rating
+RecommendationEngine "1" -- "1" DataProcessor
+RecommendationEngine "1" -- "1" RecommendationModel
+RecommendationModel "1" -- "1..*" Recommendation
+Chatbot "1" -- "1" UserProfile
+Chatbot "1" -- "1..*" Character
+Post "1" -- "1" User
+Post "1" -- "0..*" Comment
+Topic "1" -- "0..*" Post
+PostManager "1" -- "1" User
+Moderator "1" -- "0..*" Post
+
+@enduml
+```
+
+
 # 个性化推荐模块
+- 用户信息获取:收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
+- 数据预处理:对收集到的数据进行清洗、整理,提取有用的特征。
+- 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
+- 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
+- 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
+
+## 时序图
+- 业务逻辑描述
+  - 用户信息获取:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
+  - 数据预处理:系统对收集到的数据进行清洗和整理,提取有用的特征。
+  - 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
+  - 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
+  - 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
+
+    ```plantuml
+    @startuml
+    actor User
+    participant "推荐系统" as System
+
+    User -> System : 提供个人信息
+    System -> System : 收集用户信息(年龄、性别等)
+    System -> System : 收集观看历史和评分记录
+
+    System -> System : 数据预处理
+    System -> System : 清洗和整理数据
+    System -> System : 提取有用特征
+
+    System -> System : 模型训练
+    System -> System : 使用预处理数据训练推荐模型
+
+    System -> System : 推荐生成
+    System -> User : 生成个性化影视剧推荐列表
+
+    User -> System : 查看推荐列表
+    System -> User : 展示推荐列表
+
+    @enduml
+    ```
+
+## 状态图
+- 状态逻辑描述
+  - 个性化推荐模块可以分为以下几个主要状态:
+    ```
+    初始状态:系统未开始个性化推荐流程。
+    用户信息获取状态:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
+    数据预处理状态:系统对收集到的数据进行清洗和整理,提取有用的特征。
+    模型训练状态:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
+    推荐生成状态:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
+    推荐展示状态:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
+    结束状态:个性化推荐流程结束。
+    ```
+
+  - 状态转换逻辑:
+    ```
+    从初始状态到用户信息获取状态:系统开始收集用户信息。
+    从用户信息获取状态到数据预处理状态:用户信息收集完成,进入数据预处理阶段。
+    从数据预处理状态到模型训练状态:数据预处理完成,进入模型训练阶段。
+    从模型训练状态到推荐生成状态:模型训练完成,进入推荐生成阶段。
+    从推荐生成状态到推荐展示状态:推荐生成完成,进入推荐展示阶段。
+    从推荐展示状态到结束状态:用户查看推荐后,流程结束。
+    ```
+
+    ```plantuml
+    @startuml
+    [*] --> 初始状态
+
+    初始状态 --> 用户信息获取状态 : 开始收集用户信息
+    用户信息获取状态 --> 数据预处理状态 : 用户信息收集完成
+    数据预处理状态 --> 模型训练状态 : 数据预处理完成
+    模型训练状态 --> 推荐生成状态 : 模型训练完成
+    推荐生成状态 --> 推荐展示状态 : 推荐生成完成
+    推荐展示状态 --> 结束状态 : 用户查看推荐后结束
+
+    @enduml
+    ```
+
+
+# AI陪聊助手模块
+- AI陪聊搭子根据不同影视剧的剧情与用户进行流畅、自然的对话交流,为用户提供个性化的影视剧解读
+- 用户可以选择不同角色的智能体互动,AI塑造不同角色的智能体与用户聊天(此功能为可选功能)
+
+## 类图
+
+
+
+## 时序图
+
+- AI追剧搭子 业务逻辑描述
+  - 用户启动对话:用户通过应用程序启动AI陪聊助手,进入AI追剧搭子的陪聊模块。
+  - 选择影视剧:用户选择希望讨论的影视剧,AI追剧搭子加载相关信息。
+  - 对话初始化:AI追剧搭子根据所选影视剧的剧情背景,生成初始对话内容并发送给用户。
+  - 用户输入:用户输入自己的问题或评论,AI追剧搭子接收并解析用户的输入。
+  - 对话生成:AI追剧搭子根据用户的输入和影视剧剧情,生成适当的回复,并考虑剧情相关性。
+  - 回复发送:AI追剧搭子将生成的回复发送给用户,继续维持对话。
+  - 循环对话:用户和AI追剧搭子之间的对话可以持续进行,直到用户选择结束对话。
+  - 对话结束:用户选择结束对话,AI追剧搭子记录对话信息,并提供总结或推荐其他角色/影视剧。
+
+    ```plantuml
+    @startuml
+    actor User
+    participant "AI追剧搭子" as AI
+
+    User -> AI : 启动陪聊模块
+    AI -> User : 显示影视剧选择
+
+    User -> AI : 选择影视剧
+    AI -> AI : 加载影视剧信息
+    AI -> User : 生成初始对话内容
+
+    User -> AI : 输入问题/评论
+    AI -> AI : 解析用户输入
+    AI -> AI : 生成AI追剧搭子回复
+    AI -> User : 发送AI追剧搭子回复
+
+    User -> AI : 输入问题/评论
+    AI -> AI : 解析用户输入
+    AI -> AI : 生成AI追剧搭子回复
+    AI -> User : 发送AI追剧搭子回复
+
+    User -> AI : 结束对话
+    AI -> AI : 记录对话信息
+    AI -> User : 提供总结/推荐
+
+    @enduml
+    ```
+
+- 角色互动 业务逻辑描述
+  - 用户启动对话:用户通过应用程序启动AI陪聊助手,进入陪聊模块。
+  - 角色选择:用户选择希望与之互动的角色,AI助手根据选择加载该角色的背景和剧情信息。
+  - 对话初始化:AI助手根据所选角色的特点和剧情背景,生成初始对话内容并发送给用户。
+  - 用户输入:用户输入自己的问题或评论,AI助手接收并解析用户的输入。
+  - 对话生成:AI助手根据用户的输入和影视剧剧情,生成适当的回复,并考虑剧情相关性。
+  - 回复发送:AI助手将生成的回复发送给用户,继续维持对话。
+  - 循环对话:用户和AI助手之间的对话可以持续进行,直到用户选择结束对话。
+  - 对话结束:用户选择结束对话,AI助手记录对话信息。
+
+    ```plantuml
+    @startuml
+    actor User
+    participant "角色" as AI
+
+    User -> AI : 启动陪聊模块
+
+    User -> AI : 选择角色互动功能
+    AI -> User : 显示角色选择
+
+    User -> AI : 选择角色
+    AI -> AI : 加载角色信息
+    AI -> User : 生成初始对话内容
+
+    User -> AI : 输入问题/评论
+    AI -> AI : 解析用户输入
+    AI -> AI : 生成角色回复
+    AI -> User : 发送角色回复
+
+    User -> AI : 输入问题/评论
+    AI -> AI : 解析用户输入
+    AI -> AI : 生成角色回复
+    AI -> User : 发送角色回复
+
+    User -> AI : 结束对话
+    AI -> AI : 记录对话信息
+
+    @enduml
+    ```
+
+## 状态图
+
+- 状态逻辑描述
+  - AI助手陪聊模块可以分为以下几个主要状态:
+    ``` 
+    初始状态:用户未启动陪聊模块。
+    选择影视剧状态:用户启动陪聊模块后,进入影视剧选择界面。
+    选择角色状态(可选):用户选择影视剧后,可以选择希望与之互动的角色。
+    对话进行中状态:用户选择角色后,进入与角色或AI助手的对话状态。
+    结束对话状态:用户选择结束对话,AI助手记录相关信息并提供总结。
+    ```
+  
+  - 状态之间的转换逻辑如下:
+    ```
+    从初始状态到选择影视剧状态:用户启动陪聊模块。
+    从选择影视剧状态到选择角色状态:用户选择影视剧。
+    从选择影视剧状态到对话进行中状态:用户选择不选择角色,直接进入对话。
+    从选择角色状态到对话进行中状态:用户选择角色。
+    从对话进行中状态到对话进行中状态:用户输入问题或评论,AI助手生成回复。
+    从对话进行中状态到结束对话状态:用户选择结束对话。
+    从结束对话状态到初始状态:对话结束后,用户返回初始状态。
+    ```
+
+    ```plantuml
+    @startuml
+    [*] --> 初始状态
+
+    初始状态 --> 选择影视剧状态 : 启动陪聊模块
+    选择影视剧状态 --> 选择角色状态 : 选择影视剧
+    选择影视剧状态 --> 对话进行中状态 : 直接进入对话
+    选择角色状态 --> 对话进行中状态 : 选择角色
+
+    对话进行中状态 --> 对话进行中状态 : 输入问题/评论
+    对话进行中状态 --> 结束对话状态 : 结束对话
+    结束对话状态 --> [*] : 返回初始状态
+
+    @enduml
+    ```
+
+
+# 社区模块
+- 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖,点赞,评论。
+- 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,对自己感兴趣的帖子进行评论,表达自己的看法。
+- 用户输入帖子/评论内容:用户在输入框中撰写帖子/评论内容,表达自己的想法。
+- 用户提交帖子/评论:用户点击提交按钮,发送帖/评论子到系统。
+- 系统审核评论/帖子内容,审核通过则记录并更新帖子:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容,对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
+- 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞
+- 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,在并保存用户点赞的行为,在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。
+
+## 类图
+
+
+
+## 时序图
+
+- 业务逻辑描述
+  - 用户进入社区模块:用户通过应用程序进入社区模块。
+  - 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖、点赞或评论。
+  - 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对自己感兴趣的帖子进行评论,表达自己的看法。
+  - 用户输入帖子/评论内容:用户在输入框中撰写帖子或评论内容,表达自己的想法。
+  - 用户提交帖子/评论:用户点击提交按钮,发送帖子或评论到系统。
+  - 系统审核评论/帖子内容:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容。对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
+  - 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞。
+  - 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,并保存用户点赞的行为。在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。
+  - 结束:流程结束。
+
+    ```plantuml
+    @startuml
+    actor User
+    participant "系统" as System
+
+    User -> System : 进入社区模块
+    System -> User : 显示热门话题讨论区
+
+    User -> System : 选择发布帖子/评论
+    User -> System : 输入帖子/评论内容
+    User -> System : 提交帖子/评论
+
+    System -> System : 审核评论/帖子内容
+    alt 审核通过
+        System -> User : 通知审核通过
+        System -> System : 更新讨论区显示帖子/评论
+    else 审核不通过
+        System -> User : 通知审核不通过
+    end
+
+    User -> System : 选择点赞帖子
+    System -> System : 更新点赞数
+    System -> System : 记录用户点赞行为
 
+    System -> User : 提供点赞记录查询功能
+    @enduml
+    ```
 
+## 状态图
 
-# AI推荐模块
+- 状态逻辑描述
+  - 社区模块可以分为以下几个主要状态:
+    ```
+    初始状态:用户未进入社区模块。
+    社区模块状态:用户进入社区模块,系统显示热门话题讨论区。
+    选择发帖状态:用户选择在讨论区发布帖子或评论。
+    输入内容状态:用户在输入框中撰写帖子或评论内容。
+    提交内容状态:用户点击提交按钮,发送帖子或评论到系统。
+    审核状态:系统接收并审核用户发布的内容。
+    审核通过状态:审核通过,系统记录并更新帖子或评论显示。
+    审核不通过状态:审核不通过,系统通知用户。
+    点赞状态:用户选择对感兴趣的帖子或评论进行点赞。
+    更新点赞状态:系统更新相应帖子或评论的点赞数量,并记录用户的点赞行为。
+    结束状态:用户结束操作,退出社区模块。
+    ```
+  - 状态转换逻辑
+    ```
+    从初始状态到社区模块状态:用户进入社区模块。
+    从社区模块状态到选择发帖状态:用户选择发布帖子或评论。
+    从选择发帖状态到输入内容状态:用户选择输入内容。
+    从输入内容状态到提交内容状态:用户提交内容。
+    从提交内容状态到审核状态:系统审核用户发布的内容。
+    从审核状态到审核通过状态:审核通过,系统记录并更新帖子。
+    从审核状态到审核不通过状态:审核不通过,系统通知用户。
+    从社区模块状态到点赞状态:用户选择点赞帖子。
+    从点赞状态到更新点赞状态:系统更新点赞数并记录用户点赞行为。
+    从更新点赞状态到社区模块状态:返回社区模块状态。
+    从社区模块状态到结束状态:用户结束操作,退出社区模块。
+    ```
 
+    ```plantuml
+    @startuml
+    [*] --> 初始状态
 
+    初始状态 --> 社区模块状态 : 用户进入社区模块
+    社区模块状态 --> 选择发帖状态 : 用户选择发帖/评论
+    选择发帖状态 --> 输入内容状态 : 用户选择输入内容
+    输入内容状态 --> 提交内容状态 : 用户提交内容
+    提交内容状态 --> 审核状态 : 系统审核内容
 
-# 角色互动模块
+    审核状态 --> 审核通过状态 : 审核通过
+    审核通过状态 --> 社区模块状态 : 系统更新帖子/评论显示
 
+    审核状态 --> 审核不通过状态 : 审核不通过
+    审核不通过状态 --> 社区模块状态 : 系统通知用户
 
+    社区模块状态 --> 点赞状态 : 用户选择点赞帖子
+    点赞状态 --> 更新点赞状态 : 系统更新点赞数
+    更新点赞状态 --> 社区模块状态 : 返回社区模块状态
 
-# 社区模块
+    社区模块状态 --> 结束状态 : 用户结束操作
+    @enduml
+    ```