类图
' 聊天项目类图英文版
@startuml
class User {
+ objectId: String //用户唯一标识符
+ name: String //用户名
+ password: String //用户密码
+ email: String //用户邮箱
+ avatar: String //用户头像
+ bio: String //用户个人简介
+ startChat(): void
+ chooseChatPartner(): String
+ summarizeChatHistory(): void
}
' Store information about chat partners
class ChatPartner {
+ objectId: String //陪聊师唯一标识符
+ name: String //陪聊师姓名
+ expertise: String //陪聊师专业领域(普通陪聊师可为空)
+ avatar: String //陪聊师头像
+ bio: String //陪聊师个人简介
+ provideChat(): String
}
' Record chat history between users and chat partners
class ChatRecord {
+ objectId: String //聊天记录唯一标识符
+ title:String //聊天标题
+ timestamp: Date //聊天时间
+ content:String //聊天内容
- chatList: Array //聊天记录
+ user: Pointer<User> //关联的用户对象
+ chatpartner: Pointer<ChatPartner> //关联的聊天机器人对象
+ getChatHistory(): List
}
' Record generated reports
class Report {
+ objectId: String //报告唯一标识符
- analysisResult: String //分析结果
+ generateReport(): String //生成报告的方法
}
User "1" --> "*" ChatRecord
ChatPartner "1" --> "*" ChatRecord
ChatRecord "1" -- "1" Report
@enduml
时序图
@startuml
actor 用户
participant "专业陪聊师" as 专业陪聊师
participant "普通陪聊师" as 普通陪聊师
participant "聊天记录" as 聊天记录
participant "报告" as 报告
用户 -> 用户: 选择陪聊师()
alt 选择专业陪聊师
用户 -> 专业陪聊师: 提供聊天()
else 选择普通陪聊师
用户 -> 普通陪聊师: 提供聊天()
end
用户 -> 用户: 开始聊天()
用户 -> 聊天记录: 总结聊天记录()
聊天记录 -> 聊天记录: 获取聊天记录()
聊天记录 -> 报告: 生成报告()
报告 -> 用户: 返回分析报告
@enduml
状态图
@startuml
[*] --> 选择陪聊师
选择陪聊师 --> 聊天中: 开始聊天
聊天中 --> 继续聊天 : 选择继续聊天
聊天中 --> 退出聊天 : 选择退出聊天
退出聊天 --> 总结中 : 总结聊天记录
总结中 --> 生成报告 : 生成分析报告
生成报告 --> 生成失败 : 报告生成失败
生成报告 --> 生成成功 : 报告生成成功
生成成功 --> [*] : 聊天结束
生成失败 --> 生成报告 : 重新生成
@enduml
活动图
@startuml
|用户|
start
:发送消息;
|专业陪聊机器人|
:回复消息;
|用户|
repeat
if (继续聊天?) then (是)
|用户|
:发送消息;
|专业陪聊机器人|
:回复消息;
else (否)
|管理员|
:记录消息;
stop
endif
repeat while (回复消息)
@enduml