# 类图 ```plantuml ' 聊天项目类图 @startuml ' 智能陪聊 ' 存储用户的基本信息 class 用户 { +用户ID: String +用户名: String +密码: String +邮箱: String +头像: String +个人简介: String + 开始聊天():void + 选择陪聊师():String + 总结聊天记录():void } ' 存储专业陪聊师的信息 class 专业陪聊师 { +陪聊师ID: String +名称: String +专业领域: String +评分: Float +头像: String +个人简介: String + 提供聊天(): String } ' 存储普通陪聊师的信息 class 普通陪聊师 { +陪聊师ID: String +名称: String +评分: Float +头像: String +个人简介: String + 提供聊天(): String } ' 记录用户与陪聊师的聊天记录 class 聊天记录 { +聊天记录ID: String +时间: Date -聊天内容: List +用户: 用户 +聊天机器人: 聊天机器人 + 获取聊天记录(): List } ' 记录产生的报告 class 报告 { +报告ID: String -分析结果: String + 生成报告(): String } 用户 "1" --> "*" 聊天记录 专业陪聊师 "1" --> "*" 聊天记录 普通陪聊师 "1" --> "*" 聊天记录 聊天记录 "1" -- "1" 报告 @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 ```