# 情绪博物馆 MVP 需求规格书 **文档版本**: v1.0 **最后更新**: 2025-07-03 13:42:33 **项目类型**: iOS 移动应用 **开发框架**: SwiftUI --- ## 📋 目录 - [1. 项目概述](#1-项目概述) - [2. 技术架构](#2-技术架构) - [3. 功能模块详解](#3-功能模块详解) - [3.1 记录页面](#31-记录页面) - [3.2 治愈页面](#32-治愈页面) - [3.3 探索页面](#33-探索页面) - [3.4 个人页面](#34-个人页面) - [4. 用户体验流程](#4-用户体验流程) - [5. 开发优先级](#5-开发优先级) - [6. 技术实现建议](#6-技术实现建议) - [7. 数据模型设计](#7-数据模型设计) --- ## 1. 项目概述 ### 🎯 产品定位 情绪博物馆是一款基于AI技术的心理健康应用,通过智能对话、情绪分析、个性化成长方案等功能,帮助用户建立健康的情绪管理习惯。 ### 🚀 核心价值 - **情绪陪伴**: AI驱动的智能对话系统,提供24/7情绪支持 - **个性化成长**: 基于用户数据的个性化心理成长路径 - **社区分享**: 安全的情绪表达和经验分享社区 - **数据洞察**: 情绪数据可视化,帮助用户了解自己 ### 📱 应用架构 - **平台**: iOS (SwiftUI) - **导航结构**: 底部Tab导航,4个主要模块 - **设计风格**: 简约温暖,注重用户体验 --- ## 2. 技术架构 ### 📊 技术栈 | 层级 | 技术选型 | 说明 | | --- | --- | --- | | 前端框架 | SwiftUI | iOS原生开发框架 | | 状态管理 | @StateObject, @ObservedObject | SwiftUI内置状态管理 | | 网络请求 | URLSession + Async/Await | 现代异步网络编程 | | 本地存储 | Core Data | iOS原生数据持久化 | | 地图服务 | 高德地图SDK | 国内地图服务 | | 语音识别 | Speech Framework | iOS原生语音识别 | | AI服务 | GPT-4 API | 智能对话服务 | ### 🏗 架构设计 ``` ┌─────────────────────────────────────┐ │ SwiftUI │ ├─────────────────────────────────────┤ │ ViewModel Layer │ ├─────────────────────────────────────┤ │ Service Layer │ │ ┌─────────┬─────────┬─────────┐ │ │ │ Network │ Storage │ AI │ │ │ │ Service │ Service │ Service │ │ │ └─────────┴─────────┴─────────┘ │ ├─────────────────────────────────────┤ │ Model Layer │ └─────────────────────────────────────┘ ``` --- ## 3. 功能模块详解 ### 3.1 记录页面 **定位**: 情绪主页 + AI对话入口 #### 🎨 界面组件 | 组件 | 位置 | 功能描述 | 优先级 | | --- | --- | --- | --- | | 聊天记录入口 | 左上角 | 查看历史对话记录 | P1 | | 设置按钮 | 右上角 | 主题切换、音效设置 | P2 | | 日历组件 | 顶部 | 情绪记录、历史回顾 | P1 | | AI形象 | 中心 | 3D/插图形象展示 | P2 | | 对话输入框 | 底部 | 语音/文字/图片输入 | P1 | #### ⚙️ 核心功能 1. **智能对话系统** - 支持语音转文字 (Speech Framework) - 多模态输入:文字、语音、图片 - AI情绪分析和智能回复 - 全屏对话模式 2. **情绪日历** - 单行日历视图,可展开 - 日期标记情绪状态 - 支持情绪回顾和趋势查看 3. **对话记录管理** - 对话内容自动保存 - 智能分类和标签 - 搜索和筛选功能 #### 📱 用户流程 ``` 进入记录页 → 选择输入方式 → 开始对话 → AI分析回复 → 保存记录 → 更新情绪日历 ``` --- ### 3.2 治愈页面 **定位**: 个人成长档案 + 课题系统 #### 🎨 界面组件 | 模块 | 功能描述 | 数据来源 | 优先级 | | --- | --- | --- | --- | | 情绪洞察面板 | 个人情绪分析报告 | 对话数据+AI分析 | P1 | | 成长课题标签 | 个性化成长任务 | 智能推荐+用户选择 | P1 | | 五维雷达图 | 用户画像可视化 | 成长数据综合分析 | P2 | | 互动奖励 | 积分、称号、皮肤 | 完成度计算 | P3 | #### ⚙️ 核心功能 1. **智能情绪洞察** - 基于对话内容的情绪分析 - 个性化成长建议生成 - 情绪模式识别和预警 2. **成长课题系统** - 动态课题推荐算法 - 多维度进度追踪 - 阶段性成就解锁 3. **用户画像建模** - 五维能力评估模型 - 动态数据更新机制 - 可视化展示组件 #### 📊 数据维度 - **自我感知**: 情绪识别和表达能力 - **情绪韧性**: 压力应对和恢复能力 - **行动力**: 目标设定和执行能力 - **共情力**: 理解他人和社交能力 - **生活热度**: 兴趣探索和参与程度 --- ### 3.3 探索页面 **定位**: 情绪地图 + 社区分享 #### 🎨 界面组件 | 组件 | 功能描述 | 交互方式 | 优先级 | | --- | --- | --- | --- | | 地图视图 | 展示地理位置和情绪标记 | 缩放、拖拽、点击 | P1 | | 视图切换 | 地图模式/社区模式切换 | 左上角按钮 | P1 | | 地标弹窗 | 显示位置详情和笔记 | 点击地标触发 | P1 | | 分享创建 | 发布图文内容 | 长按地图添加 | P2 | #### ⚙️ 核心功能 1. **智能地图推荐** - AI基于情绪状态推荐地点 - 用户个人收藏和计划 - 情绪-地理位置关联分析 2. **社区笔记系统** - 图文分享功能 - 点赞、评论、转发 - 内容审核和推荐算法 3. **位置服务集成** - 地理位置获取和标记 - 周边推荐和导航 - 隐私保护机制 #### 🗺 地图功能 - **个人标记**: 用户自定义的情绪地点 - **AI推荐**: 基于情绪匹配的地点推荐 - **社区内容**: 其他用户分享的美好角落 - **导航服务**: 一键导航到目标地点 --- ### 3.4 个人页面 **定位**: 用户信息 + 成就系统 #### 🎨 界面组件 | 模块 | 功能描述 | 更新频率 | 优先级 | | --- | --- | --- | --- | | 用户资料 | 基础信息和会员状态 | 手动更新 | P1 | | 成就面板 | 各类数据统计展示 | 实时更新 | P1 | | 邀请模块 | 好友邀请和奖励 | 事件触发 | P2 | | 设置中心 | 应用配置和隐私设置 | 手动配置 | P1 | #### 📈 数据统计 - **本周数据**: 心情指数、对话次数、成长轨迹 - **累计成就**: 打卡记录、分享统计、影响力数据 - **趋势分析**: 情绪变化曲线、活跃度趋势 - **社交数据**: 好友互动、内容被访问情况 --- ## 4. 用户体验流程 ### 🌟 核心用户路径 #### 首次使用流程 ```mermaid graph TD A[下载应用] --> B[注册登录] B --> C[个人信息设置] C --> D[情绪状态评估] D --> E[AI对话引导] E --> F[功能介绍] F --> G[开始使用] ``` #### 日常使用流程 ```mermaid graph TD A[打开应用] --> B[查看今日情绪] B --> C[开始对话/浏览内容] C --> D[AI分析反馈] D --> E[查看成长建议] E --> F[探索推荐内容] F --> G[记录/分享] ``` ### 🎮 用户激励机制 | 行为 | 奖励机制 | 说明 | | --- | --- | --- | | 每日对话 | 积分+连续天数 | 培养使用习惯 | | 完成课题 | 经验值+称号 | 促进成长目标 | | 分享内容 | 影响力积分 | 鼓励社区参与 | | 邀请好友 | 特殊奖励 | 促进用户增长 | --- ## 5. 开发优先级 ### 🚀 MVP开发路线图 #### Phase 1: 核心对话系统 (2-3周) - ✅ 基础UI框架搭建 - ✅ AI对话功能实现 - ✅ 语音输入集成 - ✅ 本地数据存储 - ✅ 情绪日历基础版 #### Phase 2: 个人成长模块 (2-3周) - ✅ 情绪分析算法 - ✅ 课题推荐系统 - ✅ 用户画像建模 - ✅ 数据可视化组件 - ✅ 成就系统基础版 #### Phase 3: 地图和社区 (3-4周) - ✅ 地图SDK集成 - ✅ 位置服务功能 - ✅ 内容分享系统 - ✅ 社区互动功能 - ✅ 内容审核机制 #### Phase 4: 优化和完善 (1-2周) - ✅ 性能优化 - ✅ 用户体验改进 - ✅ 数据分析完善 - ✅ 安全和隐私加强 ### 📊 功能优先级矩阵 | 功能模块 | 用户价值 | 技术复杂度 | 开发优先级 | 预估工期 | | --- | --- | --- | --- | --- | | AI对话系统 | 高 | 中 | P0 | 1周 | | 情绪日历 | 高 | 低 | P0 | 3天 | | 对话记录 | 高 | 低 | P0 | 2天 | | 成长课题 | 中 | 中 | P1 | 1周 | | 情绪分析 | 中 | 高 | P1 | 1.5周 | | 地图功能 | 中 | 高 | P2 | 2周 | | 社区分享 | 低 | 中 | P2 | 1周 | | 用户画像 | 低 | 中 | P3 | 3天 | --- ## 6. 技术实现建议 ### 🛠 关键技术组件 #### AI对话服务 ```swift // AI服务协议 protocol AIServiceProtocol { func sendMessage(_ message: String) async throws -> AIResponse func analyzeEmotion(_ text: String) async throws -> EmotionAnalysis } // GPT-4集成示例 class OpenAIService: AIServiceProtocol { private let apiKey = "your-api-key" private let endpoint = "https://api.openai.com/v1/chat/completions" func sendMessage(_ message: String) async throws -> AIResponse { // 实现GPT-4 API调用 } } ``` #### 语音识别集成 ```swift import Speech class SpeechRecognitionService { private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh-CN")) func startRecording() async throws -> String { // 实现语音转文字功能 } } ``` #### 情绪数据模型 ```swift struct EmotionRecord { let id: UUID let date: Date let emotionType: EmotionType let intensity: Float // 0.0 - 1.0 let context: String let aiAnalysis: String? } enum EmotionType: String, CaseIterable { case joy = "喜悦" case sadness = "悲伤" case anger = "愤怒" case fear = "恐惧" case surprise = "惊讶" case neutral = "平静" } ``` ### 🔧 第三方依赖 | 依赖库 | 用途 | 集成方式 | | --- | --- | --- | | AMapFoundation | 地图服务 | SPM/CocoaPods | | AMapLocation | 定位服务 | SPM/CocoaPods | | Charts | 数据可视化 | SPM | | Alamofire | 网络请求 | SPM | | Kingfisher | 图片加载 | SPM | --- ## 7. 数据模型设计 ### 📊 Core Data实体关系 ``` User (用户) ├── conversations: [Conversation] (对话记录) ├── emotionRecords: [EmotionRecord] (情绪记录) ├── growthTopics: [GrowthTopic] (成长课题) ├── achievements: [Achievement] (成就记录) ├── locations: [UserLocation] (用户地点) └── posts: [CommunityPost] (社区分享) Conversation (对话) ├── messages: [Message] (消息列表) ├── emotionAnalysis: EmotionAnalysis (情绪分析) └── topics: [String] (关联话题) GrowthTopic (成长课题) ├── category: TopicCategory (课题分类) ├── progress: Float (完成进度) ├── interactions: [TopicInteraction] (互动记录) └── rewards: [Reward] (获得奖励) ``` ### 🗃 数据表结构 #### 用户表 (User) | 字段 | 类型 | 说明 | 索引 | | --- | --- | --- | --- | | id | UUID | 主键 | PK | | username | String | 用户名 | UNIQUE | | email | String | 邮箱 | UNIQUE | | profile | UserProfile | 用户档案 | - | | createdAt | Date | 创建时间 | INDEX | | lastActiveAt | Date | 最后活跃 | INDEX | #### 对话表 (Conversation) | 字段 | 类型 | 说明 | 索引 | | --- | --- | --- | --- | | id | UUID | 主键 | PK | | userId | UUID | 用户ID | FK | | title | String | 对话标题 | - | | startTime | Date | 开始时间 | INDEX | | endTime | Date | 结束时间 | INDEX | | messageCount | Int | 消息数量 | - | #### 情绪记录表 (EmotionRecord) | 字段 | 类型 | 说明 | 索引 | | --- | --- | --- | --- | | id | UUID | 主键 | PK | | userId | UUID | 用户ID | FK | | emotionType | String | 情绪类型 | INDEX | | intensity | Float | 情绪强度 | - | | recordDate | Date | 记录日期 | INDEX | | context | String | 情绪背景 | - | ### 💾 数据同步策略 - **本地优先**: 所有数据本地存储,确保离线可用 - **增量同步**: 只同步变化的数据,减少网络开销 - **冲突解决**: 时间戳优先,客户端胜出策略 - **数据备份**: 定期备份到iCloud,支持设备间同步 --- ## 📄 附录 ### 版本历史 - **v1.0** (2025-07-03): 初始版本,完整的MVP需求规格 ### 相关文档 - 设计规范文档 - API接口文档 - 测试用例文档 - 部署运维文档 --- *本文档将根据开发进度持续更新和完善*