UML.md 21 KB

一、Schema范式设计

个性化推荐模块

  • 表设计

    1._User表
    objectId: String (默认)
    createdAt: Date (默认)
    age: Number
    gender: String
    watchHistory: Array<Pointer>
    ratingHistory: Array<Pointer>
    
    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 (可选)
    
    4.FilmRecommendation
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    recommendedFilms: Array<Pointer>
    

AI陪聊助手模块

  • 表设计

    1._User表
    objectId: String (默认)
    createdAt: Date (默认)
    username: String
    chatHistory: Array<Pointer>
    
    2.Film表
    objectId: String (默认)
    createdAt: Date (默认)
    title: String
    genre: String
    contentFeatures: Array
    plotSummary: String
    
    3.FilmRole表
    objectId: String (默认)
    createdAt: Date (默认)
    film: Pointer
    name: String
    avater: String
    desc: String
    roleTraits: Array
    
    4.FilmPartner表
    objectId: String (默认)
    createdAt: Date (默认)
    name: String
    age: Number
    avater: String
    desc: String
    
    
    5.FilmChat表
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    filmrole: Pointer
    filmpartner: Pointer
    dialogue: String
    timestamp: Date
    

社区模块

  • 表设计

    1._User表
    objectId: String (默认)
    createdAt: Date (默认)
    username: String
    postHistory: Array<Pointer>
    commentHistory: Array<Pointer>
    likeHistory: Array<Pointer>
    
    2.FilmPost表
    
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    content: String
    likesCount: Number
    commentsCount: Number
    status: String (例如 "pending", "approved", "rejected")
    
    3.FilmComment表
    objectId: String (默认)
    createdAt: Date (默认)
    post: Pointer
    user: Pointer
    content: String
    status: String (例如 "pending", "approved", "rejected")
    
    4.FilmLike表
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    post: Pointer
    comment: Pointer (可选,若点赞的是评论)
    

类图

1. 个性化推荐模块

实体类:
User:表示用户的信息。
Recommendation:表示生成的推荐列表。
WatchHistory:表示用户的观看历史。
Rating:表示用户的评分记录。

控制类:
RecommendationEngine:处理推荐逻辑。
DataProcessor:进行数据预处理。
RecommendationModel:表示推荐模型。

边界类:
RecommendationView:表示推荐展示界面。
2. AI陪聊助手模块

实体类:
UserProfile:表示用户的个人资料。
Character:表示可选的角色。
Dialogue:表示对话内容。

控制类:
Chatbot:表示AI陪聊助手。

边界类:
DialogueView:表示对话界面。
3. 社区模块

实体类:
Post:表示用户发布的帖子。
Comment:表示用户对帖子的评论。
Topic:表示讨论话题。

控制类:
PostManager:管理帖子和评论的逻辑。
Moderator:负责审核内容。

边界类:
CommunityView:表示社区模块的界面。
@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

个性化推荐模块

  • 用户信息获取:收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
  • 数据预处理:对收集到的数据进行清洗、整理,提取有用的特征。
  • 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
  • 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
  • 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。

时序图

  • 业务逻辑描述

    • 用户信息获取:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
    • 数据预处理:系统对收集到的数据进行清洗和整理,提取有用的特征。
    • 模型训练:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
    • 推荐生成:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
    • 推荐展示:将推荐列表展示给用户,用户可以根据推荐观看影视剧。

      @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
      

状态图

  • 状态逻辑描述

    • 个性化推荐模块可以分为以下几个主要状态:

      初始状态:系统未开始个性化推荐流程。
      用户信息获取状态:系统收集用户的个人信息(如年龄、性别等)、观看历史、评分记录等。
      数据预处理状态:系统对收集到的数据进行清洗和整理,提取有用的特征。
      模型训练状态:使用预处理后的数据训练推荐模型,模型可以基于用户的历史行为、相似用户的行为或影视剧的内容特征等进行推荐。
      推荐生成状态:根据训练好的模型,为用户生成个性化的影视剧推荐列表。
      推荐展示状态:将推荐列表展示给用户,用户可以根据推荐观看影视剧。
      结束状态:个性化推荐流程结束。
      
    • 状态转换逻辑:

      从初始状态到用户信息获取状态:系统开始收集用户信息。
      从用户信息获取状态到数据预处理状态:用户信息收集完成,进入数据预处理阶段。
      从数据预处理状态到模型训练状态:数据预处理完成,进入模型训练阶段。
      从模型训练状态到推荐生成状态:模型训练完成,进入推荐生成阶段。
      从推荐生成状态到推荐展示状态:推荐生成完成,进入推荐展示阶段。
      从推荐展示状态到结束状态:用户查看推荐后,流程结束。
      
      @startuml
      [*] --> 初始状态
      
      初始状态 --> 用户信息获取状态 : 开始收集用户信息
      用户信息获取状态 --> 数据预处理状态 : 用户信息收集完成
      数据预处理状态 --> 模型训练状态 : 数据预处理完成
      模型训练状态 --> 推荐生成状态 : 模型训练完成
      推荐生成状态 --> 推荐展示状态 : 推荐生成完成
      推荐展示状态 --> 结束状态 : 用户查看推荐后结束
      
      @enduml
      

AI陪聊助手模块

  • AI陪聊搭子根据影视剧的剧情与用户进行流畅、自然的对话交流,为用户提供个性化的影视剧解读
  • 用户可以选择不同角色的智能体互动,AI塑造不同角色的智能体与用户聊天(此功能为可选功能)

类图

时序图

  • AI追剧搭子 业务逻辑描述

    • 用户启动对话:用户通过应用程序启动AI陪聊助手,进入AI追剧搭子的陪聊模块。
    • 选择影视剧:用户选择希望讨论的影视剧,AI追剧搭子加载相关信息。
    • 对话初始化:AI追剧搭子根据所选影视剧的剧情背景,生成初始对话内容并发送给用户。
    • 用户输入:用户输入自己的问题或评论,AI追剧搭子接收并解析用户的输入。
    • 对话生成:AI追剧搭子根据用户的输入和影视剧剧情,生成适当的回复,并考虑剧情相关性。
    • 回复发送:AI追剧搭子将生成的回复发送给用户,继续维持对话。
    • 循环对话:用户和AI追剧搭子之间的对话可以持续进行,直到用户选择结束对话。
    • 对话结束:用户选择结束对话,AI追剧搭子记录对话信息,并提供总结或推荐其他角色/影视剧。

      @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助手记录对话信息。

      @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助手生成回复。
      从对话进行中状态到结束对话状态:用户选择结束对话。
      从结束对话状态到初始状态:对话结束后,用户返回初始状态。
      
      @startuml
      [*] --> 初始状态
      
      初始状态 --> 选择影视剧状态 : 启动陪聊模块
      选择影视剧状态 --> 选择角色状态 : 选择影视剧
      选择影视剧状态 --> 对话进行中状态 : 直接进入对话
      选择角色状态 --> 对话进行中状态 : 选择角色
      
      对话进行中状态 --> 对话进行中状态 : 输入问题/评论
      对话进行中状态 --> 结束对话状态 : 结束对话
      结束对话状态 --> [*] : 返回初始状态
      
      @enduml
      

社区模块

  • 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖,点赞,评论。
  • 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,对自己感兴趣的帖子进行评论,表达自己的看法。
  • 用户输入帖子/评论内容:用户在输入框中撰写帖子/评论内容,表达自己的想法。
  • 用户提交帖子/评论:用户点击提交按钮,发送帖/评论子到系统。
  • 系统审核评论/帖子内容,审核通过则记录并更新帖子:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容,对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
  • 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞
  • 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,在并保存用户点赞的行为,在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。

类图

时序图

  • 业务逻辑描述

    • 用户进入社区模块:用户通过应用程序进入社区模块。
    • 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖、点赞或评论。
    • 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对自己感兴趣的帖子进行评论,表达自己的看法。
    • 用户输入帖子/评论内容:用户在输入框中撰写帖子或评论内容,表达自己的想法。
    • 用户提交帖子/评论:用户点击提交按钮,发送帖子或评论到系统。
    • 系统审核评论/帖子内容:系统接收并审核用户发布的内容,进行自动审核,快速识别并过滤违规内容。对于疑似违规的内容,进行人工复审,确保审核结果的准确性和公正性。审核结果通知用户,若审核成功则在讨论区中显示帖子或评论。
    • 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞。
    • 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,并保存用户点赞的行为。在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。
    • 结束:流程结束。

      @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
      

状态图

  • 状态逻辑描述

    • 社区模块可以分为以下几个主要状态:

      初始状态:用户未进入社区模块。
      社区模块状态:用户进入社区模块,系统显示热门话题讨论区。
      选择发帖状态:用户选择在讨论区发布帖子或评论。
      输入内容状态:用户在输入框中撰写帖子或评论内容。
      提交内容状态:用户点击提交按钮,发送帖子或评论到系统。
      审核状态:系统接收并审核用户发布的内容。
      审核通过状态:审核通过,系统记录并更新帖子或评论显示。
      审核不通过状态:审核不通过,系统通知用户。
      点赞状态:用户选择对感兴趣的帖子或评论进行点赞。
      更新点赞状态:系统更新相应帖子或评论的点赞数量,并记录用户的点赞行为。
      结束状态:用户结束操作,退出社区模块。
      
    • 状态转换逻辑

      从初始状态到社区模块状态:用户进入社区模块。
      从社区模块状态到选择发帖状态:用户选择发布帖子或评论。
      从选择发帖状态到输入内容状态:用户选择输入内容。
      从输入内容状态到提交内容状态:用户提交内容。
      从提交内容状态到审核状态:系统审核用户发布的内容。
      从审核状态到审核通过状态:审核通过,系统记录并更新帖子。
      从审核状态到审核不通过状态:审核不通过,系统通知用户。
      从社区模块状态到点赞状态:用户选择点赞帖子。
      从点赞状态到更新点赞状态:系统更新点赞数并记录用户点赞行为。
      从更新点赞状态到社区模块状态:返回社区模块状态。
      从社区模块状态到结束状态:用户结束操作,退出社区模块。
      
      @startuml
      [*] --> 初始状态
      
      初始状态 --> 社区模块状态 : 用户进入社区模块
      社区模块状态 --> 选择发帖状态 : 用户选择发帖/评论
      选择发帖状态 --> 输入内容状态 : 用户选择输入内容
      输入内容状态 --> 提交内容状态 : 用户提交内容
      提交内容状态 --> 审核状态 : 系统审核内容
      
      审核状态 --> 审核通过状态 : 审核通过
      审核通过状态 --> 社区模块状态 : 系统更新帖子/评论显示
      
      审核状态 --> 审核不通过状态 : 审核不通过
      审核不通过状态 --> 社区模块状态 : 系统通知用户
      
      社区模块状态 --> 点赞状态 : 用户选择点赞帖子
      点赞状态 --> 更新点赞状态 : 系统更新点赞数
      更新点赞状态 --> 社区模块状态 : 返回社区模块状态
      
      社区模块状态 --> 结束状态 : 用户结束操作
      @enduml