# 类图 ```plantuml ' 聊天项目类图英文版 @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 //关联的用户对象 + chatpartner: Pointer //关联的聊天机器人对象 + getChatHistory(): List } ' Record generated reports class Report { + objectId: String //报告唯一标识符 - analysisResult: String //分析结果 + generateReport(): String //生成报告的方法 } User "1" --> "*" ChatRecord ChatPartner "1" --> "*" ChatRecord ChatRecord "1" -- "1" Report @enduml ``` # 时序图 ```plantuml @startuml actor 用户 participant "专业陪聊师" as 专业陪聊师 participant "普通陪聊师" as 普通陪聊师 participant "聊天记录" as 聊天记录 participant "报告" as 报告 用户 -> 用户: 选择陪聊师() alt 选择专业陪聊师 用户 -> 专业陪聊师: 提供聊天() else 选择普通陪聊师 用户 -> 普通陪聊师: 提供聊天() end 用户 -> 用户: 开始聊天() 用户 -> 聊天记录: 总结聊天记录() 聊天记录 -> 聊天记录: 获取聊天记录() 聊天记录 -> 报告: 生成报告() 报告 -> 用户: 返回分析报告 @enduml ``` # 状态图 ```plantuml @startuml [*] --> 选择陪聊师 选择陪聊师 --> 聊天中: 开始聊天 聊天中 --> 继续聊天 : 选择继续聊天 聊天中 --> 退出聊天 : 选择退出聊天 退出聊天 --> 总结中 : 总结聊天记录 总结中 --> 生成报告 : 生成分析报告 生成报告 --> 生成失败 : 报告生成失败 生成报告 --> 生成成功 : 报告生成成功 生成成功 --> [*] : 聊天结束 生成失败 --> 生成报告 : 重新生成 @enduml ``` # 活动图 ```plantuml @startuml |用户| start :发送消息; |专业陪聊机器人| :回复消息; |用户| repeat if (继续聊天?) then (是) |用户| :发送消息; |专业陪聊机器人| :回复消息; else (否) |管理员| :记录消息; stop endif repeat while (回复消息) @enduml ```