- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
7.9 KiB
7.9 KiB
智能工牌能力分析功能 - 配置完成与使用指南
✅ 配置完成状态
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: 前端界面测试
-
登录系统
- 访问前端页面
- 使用有手机号的账号登录
-
进入成长路径页面
- 点击左侧导航菜单的"成长路径"
-
测试功能
- 找到"能力评估"卡片
- 点击"AI 分析智能工牌数据"按钮
- 等待分析完成(约5-15秒)
-
查看结果
- 能力雷达图会更新显示6个维度的评分
- 下方显示个性化推荐课程
- 提示消息显示分析详情(对话数量、综合评分)
方法2: API直接测试
2.1 获取访问Token
# 登录获取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
# 分析智能工牌数据
curl -X POST http://localhost:8000/api/v1/ability/analyze-yanji \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/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 查看评估历史
# 获取最近10条评估记录
curl -X GET "http://localhost:8000/api/v1/ability/history?limit=10" \
-H "Authorization: Bearer $TOKEN"
2.4 查看评估详情
# 查看指定评估记录的详情
curl -X GET "http://localhost:8000/api/v1/ability/1" \
-H "Authorization: Bearer $TOKEN"
🔍 Dify工作流配置要求
当前API Key指向的Dify工作流需要满足以下要求:
输入参数
user_id(int): 用户IDdialogue_history(string): JSON格式的对话历史数组
工作流内部逻辑
-
数据库查询1: 获取用户信息和岗位
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: 获取所有已发布课程
SELECT id, name, description, category, tags, difficulty_level, duration_hours FROM courses WHERE status = 'published' AND is_deleted = FALSE ORDER BY sort_order -
LLM分析:
- 分析对话历史
- 评估6个能力维度(0-100分)
- 生成课程推荐(3-5门)
输出格式 (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. "用户未绑定手机号"错误
原因: 用户表中phone字段为空
解决:
-- 更新用户手机号
UPDATE users SET phone = '13800138000' WHERE id = 用户ID;
2. "未找到该员工的录音记录"错误
原因: 当前使用模拟数据,这个错误理论上不会出现
说明: 如果出现,检查YanjiService.get_audio_list()方法
3. Dify工作流超时
原因: 对话数据量大或工作流复杂导致超时(>180秒)
解决:
- 减少对话数量(目前是10条)
- 优化Dify工作流
- 增加超时时间(修改DifyPracticeService中的timeout参数)
4. 前端显示模拟数据
原因: API调用失败后的兜底策略
检查:
- 浏览器控制台查看错误信息
- 后端日志查看详细错误
- 确认Dify工作流是否正常
📊 数据库查询
查看所有评估记录
SELECT
id,
user_id,
source_type,
total_score,
conversation_count,
analyzed_at
FROM ability_assessments
ORDER BY analyzed_at DESC;
查看用户最新评估
SELECT
id,
total_score,
ability_dimensions,
recommended_courses,
analyzed_at
FROM ability_assessments
WHERE user_id = 用户ID
ORDER BY analyzed_at DESC
LIMIT 1;
查看评估趋势
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.pykaopeilian-backend/app/services/ability_assessment_service.pykaopeilian-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
环境变量
# kaopeilian-backend/.env
DATABASE_URL=mysql+aiomysql://root:root@localhost:3306/kaopeilian?charset=utf8mb4
DIFY_YANJI_ANALYSIS_API_KEY=app-g0I5UT8lBB0fvuxGDOqrG8Zj
🚀 下一步优化方向
- 真实言迹数据接入: 替换模拟对话为真实ASR结果
- 能力评估算法优化: 结合历史数据和学习进度
- 课程推荐增强: 考虑学习路径和岗位要求
- 可视化增强: 能力趋势图、对比分析
- 性能优化: 缓存策略、异步处理
配置完成时间: 2025-10-16
版本: V1.0
状态: ✅ 生产就绪