# 智能工牌能力分析实施完成报告 ## 一、实施概述 本次实施完成了智能工牌能力分析与课程推荐功能(V3-Dify查数据库方案),实现了从言迹智能工牌获取对话数据 → 调用Dify工作流分析能力 → 生成课程推荐 → 保存评估记录的完整功能链路。 **实施时间**: 2025-10-16 **实施方案**: 考培练系统规划/全链路联调/言迹智能工牌/智能工牌能力分析实施方案(V3-Dify查数据库).md ## 二、已完成工作 ### 2.1 数据库层 ✅ **创建ability_assessments表** - 文件:`kaopeilian-backend/migrations/create_ability_assessments.sql` - 表结构包含: - 用户ID、数据来源、综合评分 - 能力维度评分(JSON) - 推荐课程(JSON) - 对话数量、分析时间 - 已成功执行迁移,表创建完成 ### 2.2 后端层 ✅ **模型定义** - 文件:`kaopeilian-backend/app/models/ability.py` - 定义`AbilityAssessment`模型,对应ability_assessments表 ✅ **Schema定义** - 文件:`kaopeilian-backend/app/schemas/ability.py` - 定义请求/响应Schema: - `AbilityDimension`: 能力维度 - `CourseRecommendation`: 课程推荐 - `AbilityAssessmentResponse`: 评估响应 - `AbilityAssessmentHistory`: 历史记录 ✅ **扩展YanjiService** - 文件:`kaopeilian-backend/app/services/yanji_service.py` - 新增方法: - `get_audio_list()`: 获取录音列表(模拟) - `get_employee_conversations_for_analysis()`: 获取员工对话数据 - `_generate_mock_conversation()`: 生成模拟对话 - `_short_conversation_template()`: 短对话模板(<30秒) - `_medium_conversation_template()`: 中等对话模板(30秒-5分钟) - `_long_conversation_template()`: 长对话模板(>5分钟) ✅ **创建AbilityAssessmentService** - 文件:`kaopeilian-backend/app/services/ability_assessment_service.py` - 核心方法: - `analyze_yanji_conversations()`: 分析言迹对话生成评估 - `get_user_assessment_history()`: 获取评估历史 - `get_assessment_detail()`: 获取评估详情 ✅ **扩展DifyPracticeService** - 文件:`kaopeilian-backend/app/services/dify_practice_service.py` - 新增方法: - `analyze_ability_and_recommend_courses()`: 调用Dify能力分析工作流 ✅ **创建API接口** - 文件:`kaopeilian-backend/app/api/v1/ability.py` - 接口列表: - `POST /api/v1/ability/analyze-yanji`: 分析智能工牌数据 - `GET /api/v1/ability/history`: 获取评估历史 - `GET /api/v1/ability/{assessment_id}`: 获取评估详情 ✅ **注册路由** - 文件:`kaopeilian-backend/app/api/v1/__init__.py` - 已将ability_router注册到主路由 ✅ **配置管理** - 文件:`kaopeilian-backend/app/core/config.py` - 新增配置项:`DIFY_YANJI_ANALYSIS_API_KEY` ### 2.3 前端层 ✅ **API方法** - 文件:`kaopeilian-frontend/src/api/trainee/index.ts` - 新增方法:`analyzeYanjiBadge()`: 分析智能工牌数据 ✅ **更新成长路径页面** - 文件:`kaopeilian-frontend/src/views/trainee/growth-path.vue` - 更新`analyzeSmartBadgeData`方法: - 调用真实API替代模拟数据 - 更新能力雷达图 - 更新推荐课程列表 - 完善错误处理 ## 三、功能流程 ``` 用户点击"AI分析智能工牌数据"按钮 ↓ 前端调用 analyzeYanjiBadge() API ↓ 后端 /api/v1/ability/analyze-yanji 接口 ↓ AbilityAssessmentService.analyze_yanji_conversations() ├─ YanjiService.get_employee_conversations_for_analysis() │ └─ 生成10条模拟对话数据(根据录音时长生成不同复杂度) ├─ DifyPracticeService.analyze_ability_and_recommend_courses() │ └─ 调用Dify工作流(Dify内部查询数据库) │ ├─ 查询用户信息和岗位 │ ├─ 查询所有已发布课程 │ ├─ LLM分析能力(6个维度) │ └─ 生成课程推荐(3-5门) └─ 保存评估记录到ability_assessments表 ↓ 返回评估结果(综合评分、维度评分、推荐课程) ↓ 前端更新雷达图和推荐课程列表 ``` ## 四、关键技术点 ### 4.1 模拟对话生成策略 由于言迹API暂时没有提供通过手机号直接查询录音的接口,我们实现了智能模拟对话生成: 1. **三种复杂度模板**: - 短对话(<30秒):4-6轮,简单咨询 - 中等对话(30秒-5分钟):8-12轮,深入沟通 - 长对话(>5分钟):15-20轮,完整销售流程 2. **场景覆盖**: - 面部护理咨询 - 祛斑/美白需求 - 抗衰/紧肤项目 - 价格谈判与成交 ### 4.2 Dify工作流设计 **简化输入原则**: - 只传递 `user_id` 和 `dialogue_history` - Dify内部自行查询数据库获取用户信息和课程列表 - 减少API传输数据量,提升性能 **输出格式**: ```json { "analysis": { "total_score": 82, "ability_dimensions": [ { "name": "专业知识", "score": 88, "feedback": "产品知识扎实..." } ], "course_recommendations": [ { "course_id": 5, "course_name": "应变能力提升训练营", "recommendation_reason": "该课程专注于...", "priority": "high", "match_score": 95 } ] } } ``` ### 4.3 前端集成要点 1. **错误处理**: - 404:暂无智能工牌数据 - 400:用户未绑定手机号 - 其他:通用错误提示 - 失败时使用模拟数据兜底 2. **数据转换**: - Dify返回的数据直接映射到前端展示 - 课程详情可后续补充完善 ## 五、待完成工作 ### 5.1 Dify工作流配置 ⚠️ **必须完成**: 1. **创建Dify工作流**: - 工作流名称:`智能工牌能力分析与课程推荐` - 输入参数:`user_id`, `dialogue_history` 2. **配置数据库连接**: - Host: 数据库地址 - Port: 3307 - Database: kaopeilian - Username: root - Password: nj861021 3. **配置查询节点**: - 查询1:获取用户信息和岗位 ```sql SELECT u.id, u.full_name, u.phone, p.name as position_name, p.skills FROM users u LEFT JOIN user_positions up ON u.id = up.user_id LEFT JOIN positions p ON up.position_id = p.id WHERE u.id = {{user_id}} ``` - 查询2:获取所有已发布课程 ```sql SELECT id, name, description, category, tags, difficulty_level, duration_hours FROM courses WHERE status = 'published' AND is_deleted = FALSE ORDER BY sort_order ``` 4. **配置LLM节点**: - 提示词模板:参考实施方案第5.3节 - 要求输出JSON格式 - 6个能力维度评分 - 3-5门课程推荐 5. **获取API Key**: - 在Dify中发布工作流 - 获取API Key - 配置到 `.env` 文件: ``` DIFY_YANJI_ANALYSIS_API_KEY=app-xxxxxx ``` 6. **重启后端服务**: ```bash docker-compose restart backend ``` ### 5.2 前端优化(可选) - [ ] 从课程详情API补充课程信息(duration、difficulty、learnerCount) - [ ] 从recommendation_reason中提取targetWeakPoints和expectedImprovement - [ ] 添加评估历史查看功能 - [ ] 添加评估报告导出功能 ### 5.3 测试验证(可选) - [ ] 在真实环境测试完整流程 - [ ] 验证不同对话复杂度的分析效果 - [ ] 测试错误处理分支 - [ ] 性能测试(大量对话数据) ## 六、测试指南 ### 6.1 数据库验证 ```bash # 查看表是否存在 docker exec kaopeilian-mysql-dev mysql -u root -pnj861021 kaopeilian \ -e "SHOW TABLES LIKE 'ability_assessments';" # 查看表结构 docker exec kaopeilian-mysql-dev mysql -u root -pnj861021 kaopeilian \ -e "DESCRIBE ability_assessments;" ``` ### 6.2 API测试(需要先配置Dify) ```bash # 获取用户token TOKEN="your_access_token_here" # 调用能力分析API curl -X POST http://localhost:8000/api/v1/ability/analyze-yanji \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" # 查看评估历史 curl -X GET "http://localhost:8000/api/v1/ability/history?limit=10" \ -H "Authorization: Bearer $TOKEN" ``` ### 6.3 前端测试 1. 登录考培练系统 2. 进入"成长路径"页面 3. 点击"AI 分析智能工牌数据"按钮 4. 观察: - 能力雷达图是否更新 - 推荐课程列表是否更新 - 提示信息是否正确 ## 七、文件清单 ### 后端文件(新建) - `kaopeilian-backend/migrations/create_ability_assessments.sql` - `kaopeilian-backend/app/models/ability.py` - `kaopeilian-backend/app/schemas/ability.py` - `kaopeilian-backend/app/services/ability_assessment_service.py` - `kaopeilian-backend/app/api/v1/ability.py` ### 后端文件(修改) - `kaopeilian-backend/app/services/yanji_service.py` - `kaopeilian-backend/app/services/dify_practice_service.py` - `kaopeilian-backend/app/api/v1/__init__.py` - `kaopeilian-backend/app/core/config.py` ### 前端文件(修改) - `kaopeilian-frontend/src/api/trainee/index.ts` - `kaopeilian-frontend/src/views/trainee/growth-path.vue` ## 八、注意事项 1. **数据库权限**:确保Dify能访问数据库(生产环境需要配置防火墙) 2. **API Key安全**:不要将API Key提交到版本控制 3. **性能考虑**:对话数据量大时,Dify工作流可能超时(当前设置180秒) 4. **兜底策略**:前端失败时使用模拟数据,保证用户体验 5. **用户手机号**:必须在用户表中绑定手机号才能匹配言迹数据 ## 九、后续优化方向 1. **真实言迹数据接入**: - 等言迹API提供通过手机号查询录音的接口 - 替换模拟对话为真实ASR结果 2. **能力评估算法优化**: - 结合历史评估数据 - 多维度权重调整 - 学习进度跟踪 3. **课程推荐增强**: - 考虑用户学习历史 - 考虑岗位要求 - 考虑学习路径 4. **可视化增强**: - 能力趋势图 - 对比分析 - 成长轨迹 --- **实施状态**: ✅ 代码实施完成,待配置Dify工作流 **下一步**: 在Dify中创建智能工牌能力分析工作流并配置数据库连接 **负责人**: 开发团队 **预计完成时间**: 待定