|
|
@@ -8,28 +8,24 @@
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
userId:String
|
|
|
+password:String
|
|
|
+realname:String
|
|
|
age: Number
|
|
|
gender: String
|
|
|
+email:String
|
|
|
+bio:String(个人简介)
|
|
|
avatar:String
|
|
|
-watchHistory: Array<Pointer>
|
|
|
-ratingHistory: Array<Pointer>
|
|
|
+imagery:String(用户画像)
|
|
|
|
|
|
2.Film表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
-title: String
|
|
|
-genre: String
|
|
|
-contentFeatures: Array
|
|
|
-
|
|
|
-3.FilmRating表
|
|
|
-objectId: String (默认)
|
|
|
-createdAt: Date (默认)
|
|
|
-user: Pointer
|
|
|
-film: Pointer
|
|
|
-ratingValue: Number
|
|
|
-comment: String (可选)
|
|
|
+title: String(剧名)
|
|
|
+genre: String(题材)
|
|
|
+grade: String(评分)
|
|
|
+desc: String(描述)
|
|
|
|
|
|
-4.FilmRecommendation
|
|
|
+3.FilmRecommendation
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
user: Pointer
|
|
|
@@ -40,30 +36,17 @@ recommendedFilms: Array<Pointer>
|
|
|
|
|
|
- 表设计
|
|
|
```
|
|
|
-1._User表
|
|
|
-objectId: String (默认)
|
|
|
-createdAt: Date (默认)
|
|
|
-username: String
|
|
|
-chatHistory: Array<Pointer>
|
|
|
-
|
|
|
-2.Film表
|
|
|
+1.FilmRole表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
-title: String
|
|
|
-genre: String
|
|
|
-contentFeatures: Array
|
|
|
-plotSummary: String
|
|
|
-
|
|
|
-3.FilmRole表
|
|
|
-objectId: String (默认)
|
|
|
-createdAt: Date (默认)
|
|
|
-film: Pointer
|
|
|
name: String
|
|
|
+nickname: String
|
|
|
+title: String
|
|
|
avater: String
|
|
|
-desc: String
|
|
|
-roleTraits: Array
|
|
|
+description: String
|
|
|
+traits: String
|
|
|
|
|
|
-4.FilmPartner表
|
|
|
+2.FilmPartner表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
name: String
|
|
|
@@ -71,326 +54,247 @@ age: Number
|
|
|
avater: String
|
|
|
desc: String
|
|
|
|
|
|
-
|
|
|
-5.FilmChat表
|
|
|
+3.FilmChat表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
user: Pointer
|
|
|
filmrole: Pointer
|
|
|
filmpartner: Pointer
|
|
|
+title: String
|
|
|
dialogue: String
|
|
|
-timestamp: Date
|
|
|
```
|
|
|
|
|
|
## 社区模块
|
|
|
|
|
|
- 表设计
|
|
|
```
|
|
|
-1._User表
|
|
|
+1.FilmPost表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
-username: String
|
|
|
-postHistory: Array<Pointer>
|
|
|
-commentHistory: Array<Pointer>
|
|
|
-likeHistory: Array<Pointer>
|
|
|
-
|
|
|
-2.FilmPost表
|
|
|
-
|
|
|
-objectId: String (默认)
|
|
|
-createdAt: Date (默认)
|
|
|
-user: Pointer
|
|
|
+author: Pointer
|
|
|
+title: String
|
|
|
+label:String(话题)
|
|
|
content: String
|
|
|
-label:String(话题)
|
|
|
likesCount: Number
|
|
|
-status: String (例如 "pending", "approved", "rejected",默认为通过)
|
|
|
+commentCount:Number
|
|
|
+status: String (状态,默认为通过)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-comments:Pointer
|
|
|
-3.FilmComment表
|
|
|
+2.FilmComment表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
post: Pointer
|
|
|
user: Pointer
|
|
|
content: String
|
|
|
-status: String (例如 "pending", "approved", "rejected")
|
|
|
+status: String
|
|
|
|
|
|
-4.FilmLike表
|
|
|
+3.FilmPostRating表
|
|
|
objectId: String (默认)
|
|
|
createdAt: Date (默认)
|
|
|
user: Pointer
|
|
|
post: Pointer
|
|
|
-comment: Pointer (可选,若点赞的是评论)
|
|
|
+ratingValue: Number
|
|
|
+comment: String (可选)
|
|
|
```
|
|
|
|
|
|
|
|
|
# 类图
|
|
|
-```
|
|
|
-1. 个性化推荐模块
|
|
|
-
|
|
|
-实体类:
|
|
|
-User:表示用户的信息。
|
|
|
-Recommendation:表示生成的推荐列表。
|
|
|
-WatchHistory:表示用户的观看历史。
|
|
|
-Rating:表示用户的评分记录。
|
|
|
-
|
|
|
-控制类:
|
|
|
-RecommendationEngine:处理推荐逻辑。
|
|
|
-DataProcessor:进行数据预处理。
|
|
|
-RecommendationModel:表示推荐模型。
|
|
|
-
|
|
|
-边界类:
|
|
|
-RecommendationView:表示推荐展示界面。
|
|
|
-```
|
|
|
|
|
|
-```
|
|
|
-2. AI陪聊助手模块
|
|
|
-
|
|
|
-实体类:
|
|
|
-UserProfile:表示用户的个人资料。
|
|
|
-Character:表示可选的角色。
|
|
|
-Dialogue:表示对话内容。
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
|
|
|
-控制类:
|
|
|
-Chatbot:表示AI陪聊助手。
|
|
|
+class User {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +userId: String
|
|
|
+ +password: String
|
|
|
+ +realname: String
|
|
|
+ +age: Number
|
|
|
+ +gender: String
|
|
|
+ +email: String
|
|
|
+ +bio: String
|
|
|
+ +avatar: String
|
|
|
+ +imagery: String
|
|
|
+}
|
|
|
|
|
|
-边界类:
|
|
|
-DialogueView:表示对话界面。
|
|
|
-```
|
|
|
+class Film {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +title: String
|
|
|
+ +genre: String
|
|
|
+ +grade: String
|
|
|
+ +desc: String
|
|
|
+}
|
|
|
|
|
|
-```
|
|
|
-3. 社区模块
|
|
|
+class FilmRecommendation {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +user: Pointer
|
|
|
+ +recommendedFilms: Array
|
|
|
+}
|
|
|
|
|
|
-实体类:
|
|
|
-Post:表示用户发布的帖子。
|
|
|
-Comment:表示用户对帖子的评论。
|
|
|
-Topic:表示讨论话题。
|
|
|
+class FilmRole {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +name: String
|
|
|
+ +nickname: String
|
|
|
+ +title: String
|
|
|
+ +avatar: String
|
|
|
+ +description: String
|
|
|
+ +traits: String
|
|
|
+}
|
|
|
|
|
|
-控制类:
|
|
|
-PostManager:管理帖子和评论的逻辑。
|
|
|
-Moderator:负责审核内容。
|
|
|
+class FilmPartner {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +name: String
|
|
|
+ +age: Number
|
|
|
+ +avatar: String
|
|
|
+ +desc: String
|
|
|
+}
|
|
|
|
|
|
-边界类:
|
|
|
-CommunityView:表示社区模块的界面。
|
|
|
-```
|
|
|
+class FilmChat {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +user: Pointer
|
|
|
+ +filmrole: Pointer
|
|
|
+ +filmpartner: Pointer
|
|
|
+ +title: String
|
|
|
+ +dialogue: String
|
|
|
+}
|
|
|
|
|
|
-```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)
|
|
|
- }
|
|
|
+class FilmPost {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +author: Pointer
|
|
|
+ +title: String
|
|
|
+ +label: String
|
|
|
+ +content: String
|
|
|
+ +likesCount: Number
|
|
|
+ +commentCount: Number
|
|
|
+ +status: String
|
|
|
}
|
|
|
|
|
|
-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)
|
|
|
- }
|
|
|
+class FilmComment {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +post: Pointer
|
|
|
+ +user: Pointer
|
|
|
+ +content: String
|
|
|
+ +status: String
|
|
|
}
|
|
|
|
|
|
-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)
|
|
|
- }
|
|
|
+class FilmPostRating {
|
|
|
+ +objectId: String
|
|
|
+ +createdAt: Date
|
|
|
+ +user: Pointer
|
|
|
+ +post: Pointer
|
|
|
+ +ratingValue: Number
|
|
|
+ +comment: String
|
|
|
}
|
|
|
|
|
|
-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
|
|
|
+User "1" --> "*" FilmRecommendation : has
|
|
|
+Film "1" --> "*" FilmRecommendation : recommended in
|
|
|
+User "1" --> "*" FilmChat : initiates
|
|
|
+FilmRole "1" --> "*" FilmChat : participates in
|
|
|
+FilmPartner "1" --> "*" FilmChat : participates in
|
|
|
+User "1" --> "*" FilmPost : creates
|
|
|
+FilmPost "1" --> "*" FilmComment : has
|
|
|
+User "1" --> "*" FilmComment : comments on
|
|
|
+User "1" --> "*" FilmPostRating : rates
|
|
|
+FilmPost "1" --> "*" FilmPostRating : has
|
|
|
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
|
|
|
# 个性化推荐模块
|
|
|
-- 用户信息获取:收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
|
|
|
-- 数据预处理:对收集到的数据进行清洗、整理,提取有用的特征。
|
|
|
-- 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
|
|
|
-- 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
|
|
|
-- 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
|
|
|
+- AI陪聊搭子通过分析与用户的聊天记录和用户画像,智能生成影视剧推荐列表,并显示。
|
|
|
|
|
|
## 时序图
|
|
|
- 业务逻辑描述
|
|
|
- - 用户信息获取:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
|
|
|
- - 数据预处理:系统对收集到的数据进行清洗和整理,提取有用的特征。
|
|
|
- - 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
|
|
|
- - 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
|
|
|
- - 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
|
|
|
+ - 数据分析:AI分析用户的聊天记录,以了解用户的兴趣和偏好。
|
|
|
+ - AI同时获取用户的画像信息(例如年龄、性别、兴趣等)。
|
|
|
+ - 推荐生成:基于分析结果,AI直接生成影视剧推荐列表。
|
|
|
+ - 展示推荐:系统将生成的推荐列表展示给用户。
|
|
|
|
|
|
```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 : 展示推荐列表
|
|
|
+ participant "AI陪聊助手" as ChatBot
|
|
|
+ participant "用户画像数据库" as UserProfileDB
|
|
|
+ participant "聊天记录数据库" as ChatHistoryDB
|
|
|
+ participant "推荐系统" as RecommendationSystem
|
|
|
+
|
|
|
+ ChatBot -> ChatHistoryDB: 获取聊天记录
|
|
|
+ ChatBot -> UserProfileDB: 获取用户画像
|
|
|
+ ChatBot -> ChatHistoryDB: 分析聊天记录
|
|
|
+ ChatBot -> RecommendationSystem: 生成推荐列表
|
|
|
+ RecommendationSystem -> ChatBot: 返回推荐列表
|
|
|
+ ChatBot -> User: 显示推荐列表
|
|
|
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
## 状态图
|
|
|
- 状态逻辑描述
|
|
|
- - 个性化推荐模块可以分为以下几个主要状态:
|
|
|
- ```
|
|
|
- 初始状态:系统未开始个性化推荐流程。
|
|
|
- 用户信息获取状态:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
|
|
|
- 数据预处理状态:系统对收集到的数据进行清洗和整理,提取有用的特征。
|
|
|
- 模型训练状态:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
|
|
|
- 推荐生成状态:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
|
|
|
- 推荐展示状态:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
|
|
|
- 结束状态:个性化推荐流程结束。
|
|
|
- ```
|
|
|
|
|
|
- - 状态转换逻辑:
|
|
|
```
|
|
|
- 从初始状态到用户信息获取状态:系统开始收集用户信息。
|
|
|
- 从用户信息获取状态到数据预处理状态:用户信息收集完成,进入数据预处理阶段。
|
|
|
- 从数据预处理状态到模型训练状态:数据预处理完成,进入模型训练阶段。
|
|
|
- 从模型训练状态到推荐生成状态:模型训练完成,进入推荐生成阶段。
|
|
|
- 从推荐生成状态到推荐展示状态:推荐生成完成,进入推荐展示阶段。
|
|
|
- 从推荐展示状态到结束状态:用户查看推荐后,流程结束。
|
|
|
+ 初始状态:用户未进行点击。
|
|
|
+ 分析数据:当用户点击生成推荐时,系统分析用户的聊天记录和用户画像。
|
|
|
+ 状态转移到“分析中”。
|
|
|
+ 生成推荐:系统根据分析结果生成影视剧推荐列表。
|
|
|
+ 状态转移到“推荐生成中”。
|
|
|
+ 展示推荐:推荐生成后,系统将推荐列表展示给用户。
|
|
|
+ 状态转移到“推荐展示中”。
|
|
|
+ 结束状态:用户查看推荐后,状态回到“初始状态”。
|
|
|
```
|
|
|
-
|
|
|
```plantuml
|
|
|
@startuml
|
|
|
[*] --> 初始状态
|
|
|
|
|
|
- 初始状态 --> 用户信息获取状态 : 开始收集用户信息
|
|
|
- 用户信息获取状态 --> 数据预处理状态 : 用户信息收集完成
|
|
|
- 数据预处理状态 --> 模型训练状态 : 数据预处理完成
|
|
|
- 模型训练状态 --> 推荐生成状态 : 模型训练完成
|
|
|
- 推荐生成状态 --> 推荐展示状态 : 推荐生成完成
|
|
|
- 推荐展示状态 --> 结束状态 : 用户查看推荐后结束
|
|
|
+ 初始状态 --> 分析中 : 用户点击生成推荐
|
|
|
+ 分析中 --> 推荐生成中 : 分析完成
|
|
|
+ 推荐生成中 --> 推荐展示中 : 生成推荐列表
|
|
|
+ 推荐展示中 --> 初始状态 : 用户查看推荐
|
|
|
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
+## 活动图
|
|
|
+- 活动逻辑描述
|
|
|
|
|
|
-# AI陪聊助手模块
|
|
|
-- AI陪聊搭子根据影视剧的剧情与用户进行流畅、自然的对话交流,为用户提供个性化的影视剧解读
|
|
|
-- 用户可以选择不同角色的智能体互动,AI塑造不同角色的智能体与用户聊天(此功能为可选功能)
|
|
|
-
|
|
|
-## 类图
|
|
|
-
|
|
|
+ ```
|
|
|
+ 开始:用户与 AI 陪聊助手开始互动。
|
|
|
+ 获取聊天记录:系统获取用户的聊天信息。
|
|
|
+ 获取用户画像:系统获取用户的画像信息。
|
|
|
+ 分析数据:系统分析聊天记录和用户画像,以了解用户偏好。
|
|
|
+ 生成推荐:系统基于分析结果生成影视剧推荐列表。
|
|
|
+ 展示推荐:系统将生成的推荐列表展示给用户。
|
|
|
+ 结束:用户查看推荐后,活动结束。
|
|
|
+ ```
|
|
|
+
|
|
|
+ ```plantuml
|
|
|
+ @startuml
|
|
|
+ start
|
|
|
+ :开始推荐;
|
|
|
+ :获取用户的聊天信息;
|
|
|
+ :获取用户画像信息;
|
|
|
+ :分析聊天记录和用户画像;
|
|
|
+ :生成影视剧推荐列表;
|
|
|
+ :展示推荐列表给用户;
|
|
|
+ stop
|
|
|
+ @enduml
|
|
|
+ ```
|
|
|
|
|
|
+# AI陪聊助手模块
|
|
|
+- 用户选择AI陪聊搭子,它可以根据影视剧的剧情与用户进行流畅、自然的对话交流,为用户提供个性化的影视剧解读,并保存数据。
|
|
|
+- 用户可以选择不同角色的智能体互动,塑造不同角色的智能体与用户聊天,并保存数据。
|
|
|
|
|
|
## 时序图
|
|
|
|
|
|
- AI追剧搭子 业务逻辑描述
|
|
|
- 用户启动对话:用户通过应用程序启动AI陪聊助手,进入AI追剧搭子的陪聊模块。
|
|
|
- - 选择影视剧:用户选择希望讨论的影视剧,AI追剧搭子加载相关信息。
|
|
|
- - 对话初始化:AI追剧搭子根据所选影视剧的剧情背景,生成初始对话内容并发送给用户。
|
|
|
+ - 对话初始化:AI追剧搭子根据设定的背景,生成初始对话内容并发送给用户。
|
|
|
- 用户输入:用户输入自己的问题或评论,AI追剧搭子接收并解析用户的输入。
|
|
|
- 对话生成:AI追剧搭子根据用户的输入和影视剧剧情,生成适当的回复,并考虑剧情相关性。
|
|
|
- 回复发送:AI追剧搭子将生成的回复发送给用户,继续维持对话。
|
|
|
@@ -403,10 +307,7 @@ Moderator "1" -- "0..*" Post
|
|
|
participant "AI追剧搭子" as AI
|
|
|
|
|
|
User -> AI : 启动陪聊模块
|
|
|
- AI -> User : 显示影视剧选择
|
|
|
-
|
|
|
- User -> AI : 选择影视剧
|
|
|
- AI -> AI : 加载影视剧信息
|
|
|
+ AI -> AI : 加载背景信息
|
|
|
AI -> User : 生成初始对话内容
|
|
|
|
|
|
User -> AI : 输入问题/评论
|
|
|
@@ -472,16 +373,16 @@ Moderator "1" -- "0..*" Post
|
|
|
- AI助手陪聊模块可以分为以下几个主要状态:
|
|
|
```
|
|
|
初始状态:用户未启动陪聊模块。
|
|
|
- 选择影视剧状态:用户启动陪聊模块后,进入影视剧选择界面。
|
|
|
+ 选择影视剧状态:用户启动陪聊模块后,进入AI陪聊助手选择界面。
|
|
|
+ 选择AI追剧搭子:用户选择一个追剧搭子。
|
|
|
选择角色状态(可选):用户选择影视剧后,可以选择希望与之互动的角色。
|
|
|
- 对话进行中状态:用户选择角色后,进入与角色或AI助手的对话状态。
|
|
|
+ 对话进行中状态:用户进行选择后,进入与角色或AI追剧搭子的对话状态。
|
|
|
结束对话状态:用户选择结束对话,AI助手记录相关信息并提供总结。
|
|
|
```
|
|
|
|
|
|
- 状态之间的转换逻辑如下:
|
|
|
```
|
|
|
- 从初始状态到选择影视剧状态:用户启动陪聊模块。
|
|
|
- 从选择影视剧状态到选择角色状态:用户选择影视剧。
|
|
|
+ 从初始状态到选择角色状态:用户选择角色。
|
|
|
从选择影视剧状态到对话进行中状态:用户选择不选择角色,直接进入对话。
|
|
|
从选择角色状态到对话进行中状态:用户选择角色。
|
|
|
从对话进行中状态到对话进行中状态:用户输入问题或评论,AI助手生成回复。
|
|
|
@@ -493,9 +394,9 @@ Moderator "1" -- "0..*" Post
|
|
|
@startuml
|
|
|
[*] --> 初始状态
|
|
|
|
|
|
- 初始状态 --> 选择影视剧状态 : 启动陪聊模块
|
|
|
- 选择影视剧状态 --> 选择角色状态 : 选择影视剧
|
|
|
- 选择影视剧状态 --> 对话进行中状态 : 直接进入对话
|
|
|
+ 初始状态 --> 选择角色状态 : 角色对话
|
|
|
+ 初始状态 --> 选择AI追剧搭子状态 : 搭子陪聊
|
|
|
+ 选择AI追剧搭子状态 --> 对话进行中状态 : 选择搭子
|
|
|
选择角色状态 --> 对话进行中状态 : 选择角色
|
|
|
|
|
|
对话进行中状态 --> 对话进行中状态 : 输入问题/评论
|
|
|
@@ -505,91 +406,88 @@ Moderator "1" -- "0..*" Post
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
+## 活动图
|
|
|
+- 活动逻辑描述
|
|
|
+
|
|
|
+ ```
|
|
|
+ 开始:用户进入 AI 陪聊助手模块。
|
|
|
+ 选择AI陪聊搭子:用户选择一个AI陪聊搭子或角色。
|
|
|
+ 开始对话:系统根据用户选择的角色启动对话。
|
|
|
+ 流畅交流:AI 陪聊助手根据影视剧的剧情与用户进行自然的对话交流。
|
|
|
+ 提供个性化解读:系统为用户提供个性化的影视剧解读。
|
|
|
+ 保存数据:系统在对话过程中记录用户的选择和对话内容。
|
|
|
+ 结束对话:用户选择结束对话,系统保存最终的数据记录。
|
|
|
+ 结束:流程结束。
|
|
|
+ ```
|
|
|
+
|
|
|
+ ```plantuml
|
|
|
+ @startuml
|
|
|
+ start
|
|
|
+ :用户进入AI陪聊助手模块;
|
|
|
+ :选择AI陪聊搭子或角色;
|
|
|
+ :开始对话;
|
|
|
+ :AI助手根据剧情进行自然对话;
|
|
|
+ :提供个性化的影视剧解读;
|
|
|
+ :保存对话数据;
|
|
|
+ :用户选择结束对话;
|
|
|
+ :保存最终的数据记录;
|
|
|
+ stop
|
|
|
+ @enduml
|
|
|
+ ```
|
|
|
+
|
|
|
|
|
|
# 社区模块
|
|
|
- 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖,点赞,评论。
|
|
|
- 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,对自己感兴趣的帖子进行评论,表达自己的看法。
|
|
|
- 用户输入帖子/评论内容:用户在输入框中撰写帖子/评论内容,表达自己的想法。
|
|
|
- 用户提交帖子/评论:用户点击提交按钮,发送帖/评论子到系统。
|
|
|
-- 系统审核评论/帖子内容,审核通过则记录并更新帖子:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容,对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
|
|
|
+- 系统记录用户的发帖/评论记录:在个人中心页面提供点赞记录查询功能,方便用户查看自己的发帖/评论行为。
|
|
|
+- 系统更新社区的发帖/评论内容:在讨论区中显示新的帖子/评论。
|
|
|
- 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞
|
|
|
- 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,在并保存用户点赞的行为,在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。
|
|
|
|
|
|
-## 类图
|
|
|
-
|
|
|
-
|
|
|
|
|
|
## 时序图
|
|
|
|
|
|
- 业务逻辑描述
|
|
|
- 用户进入社区模块:用户通过应用程序进入社区模块。
|
|
|
- - 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖、点赞或评论。
|
|
|
- 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对自己感兴趣的帖子进行评论,表达自己的看法。
|
|
|
- 用户输入帖子/评论内容:用户在输入框中撰写帖子或评论内容,表达自己的想法。
|
|
|
- 用户提交帖子/评论:用户点击提交按钮,发送帖子或评论到系统。
|
|
|
- - 系统审核评论/帖子内容:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容。对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
|
|
|
- - 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞。
|
|
|
- - 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,并保存用户点赞的行为。在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。
|
|
|
+ - 系统将数据保存到数据库。
|
|
|
+ - 系统显示用户用户帖子/评论。
|
|
|
- 结束:流程结束。
|
|
|
|
|
|
```plantuml
|
|
|
@startuml
|
|
|
actor User
|
|
|
- participant "系统" as System
|
|
|
-
|
|
|
- User -> System : 进入社区模块
|
|
|
- System -> User : 显示热门话题讨论区
|
|
|
-
|
|
|
- User -> System : 选择发布帖子/评论
|
|
|
- User -> System : 输入帖子/评论内容
|
|
|
- User -> System : 提交帖子/评论
|
|
|
+ participant "社区模块" as CommunityModule
|
|
|
+ participant "数据库" as Database
|
|
|
+
|
|
|
+ User -> CommunityModule: 进入社区模块
|
|
|
+ User -> CommunityModule: 选择发布帖子/评论
|
|
|
+ User -> CommunityModule: 输入帖子/评论内容
|
|
|
+ User -> CommunityModule: 提交帖子/评论
|
|
|
+ CommunityModule -> Database: 保存帖子/评论数据
|
|
|
+ Database -> CommunityModule: 确认保存
|
|
|
+ CommunityModule -> User: 显示用户帖子/评论
|
|
|
+ User -> CommunityModule: 结束
|
|
|
|
|
|
- System -> System : 审核评论/帖子内容
|
|
|
- alt 审核通过
|
|
|
- System -> User : 通知审核通过
|
|
|
- System -> System : 更新讨论区显示帖子/评论
|
|
|
- else 审核不通过
|
|
|
- System -> User : 通知审核不通过
|
|
|
- end
|
|
|
-
|
|
|
- User -> System : 选择点赞帖子
|
|
|
- System -> System : 更新点赞数
|
|
|
- System -> System : 记录用户点赞行为
|
|
|
-
|
|
|
- System -> User : 提供点赞记录查询功能
|
|
|
@enduml
|
|
|
```
|
|
|
|
|
|
## 状态图
|
|
|
|
|
|
- 状态逻辑描述
|
|
|
- - 社区模块可以分为以下几个主要状态:
|
|
|
```
|
|
|
初始状态:用户未进入社区模块。
|
|
|
- 社区模块状态:用户进入社区模块,系统显示热门话题讨论区。
|
|
|
- 选择发帖状态:用户选择在讨论区发布帖子或评论。
|
|
|
+ 社区模块状态:用户进入社区模块。
|
|
|
+ 选择发布状态:用户选择发布帖子或评论。
|
|
|
输入内容状态:用户在输入框中撰写帖子或评论内容。
|
|
|
- 提交内容状态:用户点击提交按钮,发送帖子或评论到系统。
|
|
|
- 审核状态:系统接收并审核用户发布的内容。
|
|
|
- 审核通过状态:审核通过,系统记录并更新帖子或评论显示。
|
|
|
- 审核不通过状态:审核不通过,系统通知用户。
|
|
|
- 点赞状态:用户选择对感兴趣的帖子或评论进行点赞。
|
|
|
- 更新点赞状态:系统更新相应帖子或评论的点赞数量,并记录用户的点赞行为。
|
|
|
- 结束状态:用户结束操作,退出社区模块。
|
|
|
- ```
|
|
|
- - 状态转换逻辑
|
|
|
- ```
|
|
|
- 从初始状态到社区模块状态:用户进入社区模块。
|
|
|
- 从社区模块状态到选择发帖状态:用户选择发布帖子或评论。
|
|
|
- 从选择发帖状态到输入内容状态:用户选择输入内容。
|
|
|
- 从输入内容状态到提交内容状态:用户提交内容。
|
|
|
- 从提交内容状态到审核状态:系统审核用户发布的内容。
|
|
|
- 从审核状态到审核通过状态:审核通过,系统记录并更新帖子。
|
|
|
- 从审核状态到审核不通过状态:审核不通过,系统通知用户。
|
|
|
- 从社区模块状态到点赞状态:用户选择点赞帖子。
|
|
|
- 从点赞状态到更新点赞状态:系统更新点赞数并记录用户点赞行为。
|
|
|
- 从更新点赞状态到社区模块状态:返回社区模块状态。
|
|
|
- 从社区模块状态到结束状态:用户结束操作,退出社区模块。
|
|
|
+ 提交状态:用户点击提交按钮,发送帖子或评论到系统。
|
|
|
+ 数据保存状态:系统将数据保存到数据库。
|
|
|
+ 显示状态:系统显示用户的帖子或评论。
|
|
|
+ 结束状态:用户查看帖子或评论,流程结束。
|
|
|
```
|
|
|
|
|
|
```plantuml
|
|
|
@@ -597,21 +495,39 @@ Moderator "1" -- "0..*" Post
|
|
|
[*] --> 初始状态
|
|
|
|
|
|
初始状态 --> 社区模块状态 : 用户进入社区模块
|
|
|
- 社区模块状态 --> 选择发帖状态 : 用户选择发帖/评论
|
|
|
- 选择发帖状态 --> 输入内容状态 : 用户选择输入内容
|
|
|
- 输入内容状态 --> 提交内容状态 : 用户提交内容
|
|
|
- 提交内容状态 --> 审核状态 : 系统审核内容
|
|
|
-
|
|
|
- 审核状态 --> 审核通过状态 : 审核通过
|
|
|
- 审核通过状态 --> 社区模块状态 : 系统更新帖子/评论显示
|
|
|
+ 社区模块状态 --> 选择发布状态 : 用户选择发布帖子/评论
|
|
|
+ 选择发布状态 --> 输入内容状态 : 用户输入帖子/评论内容
|
|
|
+ 输入内容状态 --> 提交状态 : 用户提交帖子/评论
|
|
|
+ 提交状态 --> 数据保存状态 : 系统将数据保存到数据库
|
|
|
+ 数据保存状态 --> 显示状态 : 系统显示用户帖子/评论
|
|
|
+ 显示状态 --> 结束状态 : 用户查看帖子/评论
|
|
|
+ 结束状态 --> 初始状态 : 流程结束
|
|
|
|
|
|
- 审核状态 --> 审核不通过状态 : 审核不通过
|
|
|
- 审核不通过状态 --> 社区模块状态 : 系统通知用户
|
|
|
+ @enduml
|
|
|
+ ```
|
|
|
|
|
|
- 社区模块状态 --> 点赞状态 : 用户选择点赞帖子
|
|
|
- 点赞状态 --> 更新点赞状态 : 系统更新点赞数
|
|
|
- 更新点赞状态 --> 社区模块状态 : 返回社区模块状态
|
|
|
+## 活动图
|
|
|
+- 活动逻辑描述
|
|
|
|
|
|
- 社区模块状态 --> 结束状态 : 用户结束操作
|
|
|
+ ```
|
|
|
+ 开始:用户进入社区模块。
|
|
|
+ 选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对感兴趣的帖子进行评论。
|
|
|
+ 输入内容:用户在输入框中撰写帖子或评论内容。
|
|
|
+ 提交内容:用户点击提交按钮,发送帖子或评论到系统。
|
|
|
+ 保存数据:系统将数据保存到数据库。
|
|
|
+ 显示内容:系统显示用户的帖子或评论。
|
|
|
+ 结束:流程结束。
|
|
|
+ ```
|
|
|
+
|
|
|
+ ```plantuml
|
|
|
+ @startuml
|
|
|
+ start
|
|
|
+ :用户进入社区模块;
|
|
|
+ :选择发布帖子/评论;
|
|
|
+ :用户输入帖子/评论内容;
|
|
|
+ :用户提交帖子/评论;
|
|
|
+ :系统将数据保存到数据库;
|
|
|
+ :系统显示用户的帖子/评论;
|
|
|
+ stop
|
|
|
@enduml
|
|
|
```
|