Story 1.2: 实现AI微建议生成工作流
Status
Draft
Story
As a 用户, I want 基于我的情绪状态获得个性化的AI建议, so that 我能够得到专业的心理健康指导并采取行动。
Acceptance Criteria
- AC1: 集成Dify工作流,根据情绪数据生成个性化建议
- AC2: 建议内容包含情绪分析、具体建议和行动指引
- AC3: 支持建议的收藏、分享和执行状态跟踪
- AC4: AI响应时间控制在5秒内
- AC5: 支持建议质量反馈机制,持续优化生成效果
Tasks / Subtasks
[ ] Task 1: 实现Dify工作流集成 (AC: 1, 4)
- [ ] 配置Dify API连接和认证
- [ ] 设计情绪分析提示词模板
- [ ] 实现建议生成工作流调用
- [ ] 添加API响应时间监控
- [ ] 实现服务降级和缓存机制
[ ] Task 2: 开发建议分类和排序算法 (AC: 2)
- [ ] 实现四类建议分类:即时缓解、持续改善、社交连接、专业求助
- [ ] 基于情绪正负向和风险等级的优先级排序
- [ ] 开发建议内容解析和结构化
- [ ] 实现建议置信度评分机制
- [ ] 添加建议时效性管理
[ ] Task 3: 完善建议展示和交互组件 (AC: 3)
- [ ] 设计建议卡片UI组件,支持TDesign规范
- [ ] 实现建议收藏和分享功能
- [ ] 添加建议执行状态跟踪
- [ ] 开发建议详情弹窗
- [ ] 优化建议列表性能和用户体验
[ ] Task 4: 建立反馈闭环系统 (AC: 5)
- [ ] 设计建议质量反馈表单
- [ ] 实现反馈数据收集和存储
- [ ] 开发反馈分析算法
- [ ] 建立模型优化反馈机制
- [ ] 添加反馈统计和报告功能
[ ] Task 5: 扩展数据模型和服务层 (AC: 1, 2, 3, 5)
- [ ] 创建suggestions数据库集合
- [ ] 扩展suggestions.js服务,支持完整工作流
- [ ] 实现建议与情绪打卡的关联
- [ ] 添加建议搜索和筛选功能
- [ ] 完善Mock数据,包含所有场景
[ ] Task 6: 实现suggestionOrchestrator云函数 (AC: 1, 2, 4)
- [ ] 实现主要编排逻辑
- [ ] 集成Dify API调用
- [ ] 添加建议生成、更新、删除功能
- [ ] 实现建议与任务的关联
- [ ] 添加错误处理和日志记录
[ ] Task 7: 集成现有功能验证 (Integration Verification)
- [ ] 验证与checkinRecorder云函数的集成
- [ ] 测试与今天页微建议列表的集成
- [ ] 确认数据正确写入journals数据库集合
- [ ] 测试网络异常时的降级处理
- [ ] 验证建议生成的性能表现
[ ] Task 8: 编写单元测试和集成测试
- [ ] 为Dify集成编写测试用例
- [ ] 为建议分类算法编写测试
- [ ] 编写反馈机制测试
- [ ] 创建端到端测试场景
- [ ] 添加性能和负载测试
Dev Notes
Previous Story Insights
基于Story 1.1的情绪打卡系统,本故事需要与情绪数据深度集成,确保建议生成的个性化和准确性。
Data Models
suggestions集合设计 [Source: docs/功能文档/功能-微建议与任务生成.md#数据需求]
- 主要字段:
rec_id: string - 建议唯一标识user_id: string - 用户标识category: string - 建议分类(即时缓解/持续改善/社交连接/专业求助)mood_reference_id: string - 关联的情绪打卡IDrisk_level: string - 风险等级confidence: number - 置信度评分source: string - 来源(model/curated/manual)
recommendation_feedback集合 [Source: docs/功能文档/功能-微建议与任务生成.md#数据需求]
- 主要字段:
suggestion_id: string - 建议IDuser_id: string - 用户IDfeedback_type: string - 反馈类型(helpful/neutral/not_helpful)feedback_score: number - 1-5满意度评分action_taken: string - 采取的行动
API Specifications
服务层接口扩展 [Source: miniprogram/services/suggestions.js]
getTodaySuggestions()- 获取今日建议,需要集成Dify调用acceptSuggestion(id)- 接受建议,支持反馈收集skipSuggestion(id)- 跳过建议,记录原因submitFeedback(suggestionId, feedback)- 提交建议质量反馈getSuggestionHistory(params)- 获取历史建议和反馈
云函数接口 [Source: cloudfunctions/suggestionOrchestrator/index.js]
action: 'generate'- 基于情绪数据生成建议action: 'updateFeedback'- 更新建议反馈action: 'getSuggestions'- 获取用户建议列表action: 'analyzePerformance'- 分析建议效果
Component Specifications
微建议卡片组件 [Source: docs/页面文档/页面-今天.md#模块2]
- 建议标题和描述展示
- 分类标签和置信度显示
- 一键生成任务按钮
- 收藏和分享功能
- 反馈评分组件
建议详情弹窗
- 完整建议内容展示
- 行动指引和步骤说明
- 相关资源推荐
- 反馈收集表单
File Locations
新增/修改文件位置 [Source: CLAUDE.md#模块结构图]
- 前端页面:
miniprogram/pages/today/index.js- 今天Tab微建议展示 - 服务层:
miniprogram/services/suggestions.js- 微建议服务(已存在,需大幅扩展) - 云函数:
cloudfunctions/suggestionOrchestrator/index.js- 建议编排(需要完整实现) - 组件:
miniprogram/components/suggestion-card/- 建议卡片组件(新增) - 数据库:
suggestions,recommendation_feedback集合(新增)
Testing Requirements
测试策略 [Source: CLAUDE.md#测试策略]
- Dify API集成测试:模拟各种情绪数据的建议生成
- 算法测试:验证建议分类和排序逻辑
- 性能测试:确保AI响应时间在5秒内
- 降级测试:网络异常时的缓存和降级机制
- 反馈闭环测试:验证反馈收集和优化流程
Technical Constraints
AI服务依赖 [Source: docs/prd.md#关键风险点监控]
- Dify API稳定性和响应时间不可控,需要实现服务降级
- 建议生成需要有本地缓存机制
- 必须监控API调用成功率响应时间
性能要求 [Source: docs/prd.md#非功能需求]
- AI生成内容响应时间不超过5秒
- 系统响应时间必须在2秒内完成基础操作
- 支持离线基础功能
数据安全要求
- 建议内容需要内容安全审核
- 用户反馈数据需要隐私保护
- 遵循最小权限原则
Integration Strategy
Dify工作流集成 [Source: docs/prd.md#技术约束和集成要求]
- 集成现有Dify AI工作流平台
- 保持与现有AI功能的兼容性
- 实现统一的错误处理和日志记录
数据流转设计
- 情绪打卡 → 建议生成 → 用户反馈 → 模型优化
- 建议与任务系统的双向关联
- 反馈数据用于持续优化建议质量
Testing
Testing Standards
测试文件位置 [Source: CLAUDE.md#测试策略]
- 单元测试:
miniprogram/services/__tests__/suggestions.test.js - 云函数测试:
cloudfunctions/suggestionOrchestrator/__tests__/index.test.js - 集成测试:
__tests__/integration/suggestion-workflow.test.js - Dify集成测试:
__tests__/integration/dify-api.test.js
测试框架和模式
- 使用Jest进行单元测试
- 模拟Dify API响应进行隔离测试
- 使用nock库模拟HTTP请求
- 性能测试使用真实的API调用
具体测试要求
- Dify API调用的各种响应场景测试
- 建议分类算法的准确性测试
- 反馈机制的完整性测试
- 缓存和降级机制测试
- 性能和并发测试
Change Log
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-10-18 | 1.0 | 初始版本创建 | Winston (Architect) |
Dev Agent Record
Agent Model Used
(待开发时填写)
Debug Log References
(待开发时填写)
Completion Notes List
(待开发时填写)
File List
(待开发时填写)
QA Results
(待QA测试时填写)