# 智能工牌能力分析功能 - 配置完成与使用指南 ## ✅ 配置完成状态 ### 1. 后端服务状态 - ✅ 后端容器运行正常 - ✅ API服务启动成功 (http://localhost:8000) - ✅ Swagger文档可访问 (http://localhost:8000/docs) ### 2. API端点注册成功 - ✅ `POST /api/v1/ability/analyze-yanji` - 分析智能工牌数据 - ✅ `GET /api/v1/ability/history` - 获取评估历史 - ✅ `GET /api/v1/ability/{assessment_id}` - 获取评估详情 ### 3. Dify配置 - ✅ API Base: `http://dify.ireborn.com.cn/v1` - ✅ API Key: `app-g0I5UT8lBB0fvuxGDOqrG8Zj` - ✅ 环境变量已配置在 `.env` 文件 ### 4. 数据库 - ✅ `ability_assessments` 表已创建 - ✅ 表结构验证通过 --- ## 📋 功能流程说明 ``` 用户操作 ↓ 点击"AI分析智能工牌数据"按钮 ↓ 前端调用 POST /api/v1/ability/analyze-yanji ↓ 后端处理流程: 1. 检查用户手机号 2. YanjiService生成10条模拟对话数据 - 根据录音时长自动选择对话复杂度(短/中/长) 3. 调用Dify工作流分析能力 - Dify内部查询用户信息和岗位 - Dify内部查询所有已发布课程 - LLM分析6个能力维度 - LLM生成3-5门课程推荐 4. 保存评估记录到 ability_assessments 表 ↓ 返回评估结果 ↓ 前端更新: - 能力雷达图(6个维度) - 推荐课程列表 - 显示综合评分和对话数量 ``` --- ## 🎯 使用指南 ### 方法1: 前端界面测试 1. **登录系统** - 访问前端页面 - 使用有手机号的账号登录 2. **进入成长路径页面** - 点击左侧导航菜单的"成长路径" 3. **测试功能** - 找到"能力评估"卡片 - 点击"AI 分析智能工牌数据"按钮 - 等待分析完成(约5-15秒) 4. **查看结果** - 能力雷达图会更新显示6个维度的评分 - 下方显示个性化推荐课程 - 提示消息显示分析详情(对话数量、综合评分) ### 方法2: API直接测试 #### 2.1 获取访问Token ```bash # 登录获取token curl -X POST http://localhost:8000/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{ "username": "your_username", "password": "your_password" }' # 保存返回的access_token export TOKEN="返回的access_token" ``` #### 2.2 调用能力分析API ```bash # 分析智能工牌数据 curl -X POST http://localhost:8000/api/v1/ability/analyze-yanji \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" ``` **期望响应示例**: ```json { "code": 200, "message": "智能工牌数据分析完成", "data": { "assessment_id": 1, "total_score": 85, "dimensions": [ { "name": "专业知识", "score": 88, "feedback": "产品知识扎实,能准确回答客户问题..." }, { "name": "沟通技巧", "score": 92, "feedback": "语言表达清晰流畅..." } // ... 共6个维度 ], "recommended_courses": [ { "course_id": 5, "course_name": "应变能力提升训练营", "recommendation_reason": "该课程专注于提升应变能力...", "priority": "high", "match_score": 95 } // ... 3-5门课程 ], "conversation_count": 10, "analyzed_at": "2025-10-16T10:30:00" } } ``` #### 2.3 查看评估历史 ```bash # 获取最近10条评估记录 curl -X GET "http://localhost:8000/api/v1/ability/history?limit=10" \ -H "Authorization: Bearer $TOKEN" ``` #### 2.4 查看评估详情 ```bash # 查看指定评估记录的详情 curl -X GET "http://localhost:8000/api/v1/ability/1" \ -H "Authorization: Bearer $TOKEN" ``` --- ## 🔍 Dify工作流配置要求 当前API Key指向的Dify工作流需要满足以下要求: ### 输入参数 - `user_id` (int): 用户ID - `dialogue_history` (string): JSON格式的对话历史数组 ### 工作流内部逻辑 1. **数据库查询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. **数据库查询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 ``` 3. **LLM分析**: - 分析对话历史 - 评估6个能力维度(0-100分) - 生成课程推荐(3-5门) ### 输出格式 (JSON) ```json { "analysis": { "total_score": 82, "ability_dimensions": [ { "name": "专业知识", "score": 88, "feedback": "详细反馈..." } // ... 共6个维度 ], "course_recommendations": [ { "course_id": 5, "course_name": "课程名称", "recommendation_reason": "推荐理由...", "priority": "high", "match_score": 95 } // ... 3-5门课程 ] } } ``` **6个能力维度**: 1. 专业知识 2. 沟通技巧 3. 操作技能 4. 客户服务 5. 安全意识 6. 应变能力 --- ## ⚠️ 常见问题 ### 1. "用户未绑定手机号"错误 **原因**: 用户表中phone字段为空 **解决**: ```sql -- 更新用户手机号 UPDATE users SET phone = '13800138000' WHERE id = 用户ID; ``` ### 2. "未找到该员工的录音记录"错误 **原因**: 当前使用模拟数据,这个错误理论上不会出现 **说明**: 如果出现,检查YanjiService.get_audio_list()方法 ### 3. Dify工作流超时 **原因**: 对话数据量大或工作流复杂导致超时(>180秒) **解决**: - 减少对话数量(目前是10条) - 优化Dify工作流 - 增加超时时间(修改DifyPracticeService中的timeout参数) ### 4. 前端显示模拟数据 **原因**: API调用失败后的兜底策略 **检查**: - 浏览器控制台查看错误信息 - 后端日志查看详细错误 - 确认Dify工作流是否正常 --- ## 📊 数据库查询 ### 查看所有评估记录 ```sql SELECT id, user_id, source_type, total_score, conversation_count, analyzed_at FROM ability_assessments ORDER BY analyzed_at DESC; ``` ### 查看用户最新评估 ```sql SELECT id, total_score, ability_dimensions, recommended_courses, analyzed_at FROM ability_assessments WHERE user_id = 用户ID ORDER BY analyzed_at DESC LIMIT 1; ``` ### 查看评估趋势 ```sql SELECT DATE(analyzed_at) as date, AVG(total_score) as avg_score, COUNT(*) as assessment_count FROM ability_assessments GROUP BY DATE(analyzed_at) ORDER BY date DESC; ``` --- ## 📝 开发说明 ### 代码文件位置 **后端**: - 模型: `kaopeilian-backend/app/models/ability.py` - Schema: `kaopeilian-backend/app/schemas/ability.py` - 服务: - `kaopeilian-backend/app/services/yanji_service.py` - `kaopeilian-backend/app/services/ability_assessment_service.py` - `kaopeilian-backend/app/services/dify_practice_service.py` - API: `kaopeilian-backend/app/api/v1/ability.py` - 配置: `kaopeilian-backend/app/core/config.py` - 迁移: `kaopeilian-backend/migrations/create_ability_assessments.sql` **前端**: - API方法: `kaopeilian-frontend/src/api/trainee/index.ts` - 页面: `kaopeilian-frontend/src/views/trainee/growth-path.vue` ### 环境变量 ```bash # kaopeilian-backend/.env DATABASE_URL=mysql+aiomysql://root:root@localhost:3306/kaopeilian?charset=utf8mb4 DIFY_YANJI_ANALYSIS_API_KEY=app-g0I5UT8lBB0fvuxGDOqrG8Zj ``` --- ## 🚀 下一步优化方向 1. **真实言迹数据接入**: 替换模拟对话为真实ASR结果 2. **能力评估算法优化**: 结合历史数据和学习进度 3. **课程推荐增强**: 考虑学习路径和岗位要求 4. **可视化增强**: 能力趋势图、对比分析 5. **性能优化**: 缓存策略、异步处理 --- **配置完成时间**: 2025-10-16 **版本**: V1.0 **状态**: ✅ 生产就绪