UML.md 16 KB

一、Schema范式设计

个性化推荐模块

  • 表设计

    1._User表
    objectId: String (默认)
    createdAt: Date (默认)
    userId:String
    password:String
    realname:String
    age: Number
    gender: String
    email:String
    bio:String(个人简介)
    avatar:String
    imagery:String(用户画像)
    
    2.FilmRecommendation
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    title: String(剧名)
    genre: String(题材)
    grade: String(评分)
    desc: String(描述)
    

AI陪聊助手模块

  • 表设计

    1.FilmRole表
    objectId: String (默认)
    createdAt: Date (默认)
    name: String
    nickname: String
    title: String
    avater: String
    description: String
    traits: String
    
    2.FilmPartner表
    objectId: String (默认)
    createdAt: Date (默认)
    name: String
    age: Number
    avater: String
    desc: String
    
    3.FilmChat表
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    filmrole: Pointer
    filmpartner: Pointer
    title: String
    dialogue: String
    

社区模块

  • 表设计

    1.FilmPost表
    objectId: String (默认)
    createdAt: Date (默认)
    author: Pointer
    title: String
    label:String(话题)
    content: String
    likesCount: Number
    commentCount:Number
    status: String (状态,默认为通过)
    
    2.FilmComment表
    objectId: String (默认)
    createdAt: Date (默认)
    post: Pointer
    user: Pointer
    content: String
    status: String
    
    3.FilmPostRating表
    objectId: String (默认)
    createdAt: Date (默认)
    user: Pointer
    post: Pointer
    ratingValue: Number
    comment: String (可选)
    

类图

@startuml

class User {
    +String objectId
    +Date createdAt
    +String userId
    +String password
    +String realname
    +Number age
    +String gender
    +String email
    +String bio
    +String avatar
    +String imagery
}

class FilmRecommendation {
    +String objectId
    +Date createdAt
    +Pointer user
    +String title
    +String genre
    +String grade
    +String desc
}

class FilmRole {
    +String objectId
    +Date createdAt
    +String name
    +String nickname
    +String title
    +String avatar
    +String description
    +String traits
}

class FilmPartner {
    +String objectId
    +Date createdAt
    +String name
    +Number age
    +String avatar
    +String desc
}

class FilmChat {
    +String objectId
    +Date createdAt
    +Pointer user
    +Pointer filmrole
    +Pointer filmpartner
    +String title
    +String dialogue
}

class FilmPost {
    +String objectId
    +Date createdAt
    +Pointer author
    +String title
    +String label
    +String content
    +Number likesCount
    +Number commentCount
    +String status
}

class FilmComment {
    +String objectId
    +Date createdAt
    +Pointer post
    +Pointer user
    +String content
    +String status
}

class FilmPostRating {
    +String objectId
    +Date createdAt
    +Pointer user
    +Pointer post
    +Number ratingValue
    +String comment
}

User "1" -- "0..*" FilmRecommendation : has
User "1" -- "0..*" FilmChat : initiates
FilmRole "1" -- "0..*" FilmChat : participates
FilmPartner "1" -- "0..*" FilmChat : participates
User "1" -- "0..*" FilmPost : creates
FilmPost "1" -- "0..*" FilmComment : has
User "1" -- "0..*" FilmComment : writes
User "1" -- "0..*" FilmPostRating : rates
FilmPost "1" -- "0..*" FilmPostRating : receives

@enduml

个性化推荐模块

  • AI陪聊搭子通过分析与用户的聊天记录和用户画像,智能生成影视剧推荐列表,并显示。

时序图

  • 业务逻辑描述

    • 数据分析:AI分析用户的聊天记录,以了解用户的兴趣和偏好。
    • AI同时获取用户的画像信息(例如年龄、性别、兴趣等)。
    • 推荐生成:基于分析结果,AI直接生成影视剧推荐列表。
    • 展示推荐:系统将生成的推荐列表展示给用户。

      @startuml
      actor 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
      

状态图

  • 状态逻辑描述

    初始状态:用户未进行点击。
    分析数据:当用户点击生成推荐时,系统分析用户的聊天记录和用户画像。
    状态转移到“分析中”。
    生成推荐:系统根据分析结果生成影视剧推荐列表。
    状态转移到“推荐生成中”。
    展示推荐:推荐生成后,系统将推荐列表展示给用户。
    状态转移到“推荐展示中”。
    结束状态:用户查看推荐后,状态回到“初始状态”。
    
    @startuml
    [*] --> 初始状态
    
    初始状态 --> 分析中 : 用户点击生成推荐
    分析中 --> 推荐生成中 : 分析完成
    推荐生成中 --> 推荐展示中 : 生成推荐列表
    推荐展示中 --> 初始状态 : 用户查看推荐
    
    @enduml
    

活动图

  • 活动逻辑描述

    开始:用户与 AI 陪聊助手开始互动。
    获取聊天记录:系统获取用户的聊天信息。
    获取用户画像:系统获取用户的画像信息。
    分析数据:系统分析聊天记录和用户画像,以了解用户偏好。
    生成推荐:系统基于分析结果生成影视剧推荐列表。
    展示推荐:系统将生成的推荐列表展示给用户。
    结束:用户查看推荐后,活动结束。
    
    @startuml
    start
    :开始推荐;
    :获取用户的聊天信息;
    :获取用户画像信息;
    :分析聊天记录和用户画像;
    :生成影视剧推荐列表;
    :展示推荐列表给用户;
    stop
    @enduml
    

AI陪聊助手模块

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

时序图

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

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

      @startuml
      actor User
      participant "AI追剧搭子" as AI
      
      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追剧搭子的对话状态。
      结束对话状态:用户选择结束对话,AI助手记录相关信息并提供总结。
      
    • 状态之间的转换逻辑如下:

      从初始状态到选择角色状态:用户选择角色。
      从选择影视剧状态到对话进行中状态:用户选择不选择角色,直接进入对话。
      从选择角色状态到对话进行中状态:用户选择角色。
      从对话进行中状态到对话进行中状态:用户输入问题或评论,AI助手生成回复。
      从对话进行中状态到结束对话状态:用户选择结束对话。
      从结束对话状态到初始状态:对话结束后,用户返回初始状态。
      
      @startuml
      [*] --> 初始状态
      
      初始状态 --> 选择角色状态 : 角色对话
      初始状态 --> 选择AI追剧搭子状态 : 搭子陪聊
      选择AI追剧搭子状态 --> 对话进行中状态 : 选择搭子
      选择角色状态 --> 对话进行中状态 : 选择角色
      
      对话进行中状态 --> 对话进行中状态 : 输入问题/评论
      对话进行中状态 --> 结束对话状态 : 结束对话
      结束对话状态 --> [*] : 返回初始状态
      
      @enduml
      

活动图

  • 活动逻辑描述

    开始:用户进入 AI 陪聊助手模块。
    选择AI陪聊搭子:用户选择一个AI陪聊搭子或角色。
    开始对话:系统根据用户选择的角色启动对话。
    流畅交流:AI 陪聊助手根据影视剧的剧情与用户进行自然的对话交流。
    提供个性化解读:系统为用户提供个性化的影视剧解读。
    保存数据:系统在对话过程中记录用户的选择和对话内容。
    结束对话:用户选择结束对话,系统保存最终的数据记录。
    结束:流程结束。
    
    @startuml
    start
    :用户进入AI陪聊助手模块;
    :选择AI陪聊搭子或角色;
    :开始对话;
    :AI助手根据剧情进行自然对话;
    :提供个性化的影视剧解读;
    :保存对话数据;
    :用户选择结束对话;
    :保存最终的数据记录;
    stop
    @enduml
    

社区模块

  • 系统显示热门话题讨论区:系统展示当前热门的讨论话题和帖子,用户可以选择感兴趣的内容进行发帖,点赞,评论。
  • 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,对自己感兴趣的帖子进行评论,表达自己的看法。
  • 用户输入帖子/评论内容:用户在输入框中撰写帖子/评论内容,表达自己的想法。
  • 用户提交帖子/评论:用户点击提交按钮,发送帖/评论子到系统。
  • 系统记录用户的发帖/评论记录:在个人中心页面提供点赞记录查询功能,方便用户查看自己的发帖/评论行为。
  • 系统更新社区的发帖/评论内容:在讨论区中显示新的帖子/评论。
  • 用户选择点赞帖子:用户对感兴趣的帖子或评论进行点赞
  • 系统更新点赞数并记录该用户的点赞记录:系统更新相应帖子或评论的点赞数量,在并保存用户点赞的行为,在个人中心页面提供点赞记录查询功能,方便用户查看自己的点赞行为。

时序图

  • 业务逻辑描述

    • 用户进入社区模块:用户通过应用程序进入社区模块。
    • 用户选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对自己感兴趣的帖子进行评论,表达自己的看法。
    • 用户输入帖子/评论内容:用户在输入框中撰写帖子或评论内容,表达自己的想法。
    • 用户提交帖子/评论:用户点击提交按钮,发送帖子或评论到系统。
    • 系统将数据保存到数据库。
    • 系统显示用户用户帖子/评论。
    • 结束:流程结束。

      @startuml
      actor User
      participant "社区模块" as CommunityModule
      participant "数据库" as Database
      
      User -> CommunityModule: 进入社区模块
      User -> CommunityModule: 选择发布帖子/评论
      User -> CommunityModule: 输入帖子/评论内容
      User -> CommunityModule: 提交帖子/评论
      CommunityModule -> Database: 保存帖子/评论数据
      Database -> CommunityModule: 确认保存
      CommunityModule -> User: 显示用户帖子/评论
      User -> CommunityModule: 结束
      
      @enduml
      

状态图

  • 状态逻辑描述

    初始状态:用户未进入社区模块。
    社区模块状态:用户进入社区模块。
    选择发布状态:用户选择发布帖子或评论。
    输入内容状态:用户在输入框中撰写帖子或评论内容。
    提交状态:用户点击提交按钮,发送帖子或评论到系统。
    数据保存状态:系统将数据保存到数据库。
    显示状态:系统显示用户的帖子或评论。
    结束状态:用户查看帖子或评论,流程结束。
    
    @startuml
    [*] --> 初始状态
    
    初始状态 --> 社区模块状态 : 用户进入社区模块
    社区模块状态 --> 选择发布状态 : 用户选择发布帖子/评论
    选择发布状态 --> 输入内容状态 : 用户输入帖子/评论内容
    输入内容状态 --> 提交状态 : 用户提交帖子/评论
    提交状态 --> 数据保存状态 : 系统将数据保存到数据库
    数据保存状态 --> 显示状态 : 系统显示用户帖子/评论
    显示状态 --> 结束状态 : 用户查看帖子/评论
    结束状态 --> 初始状态 : 流程结束
    
    @enduml
    

活动图

  • 活动逻辑描述

    开始:用户进入社区模块。
    选择发布帖子/评论:用户选择在讨论区发布自己的观点、经验或问题,或对感兴趣的帖子进行评论。
    输入内容:用户在输入框中撰写帖子或评论内容。
    提交内容:用户点击提交按钮,发送帖子或评论到系统。
    保存数据:系统将数据保存到数据库。
    显示内容:系统显示用户的帖子或评论。
    结束:流程结束。
    
    @startuml
    start
    :用户进入社区模块;
    :选择发布帖子/评论;
    :用户输入帖子/评论内容;
    :用户提交帖子/评论;
    :系统将数据保存到数据库;
    :系统显示用户的帖子/评论;
    stop
    @enduml