Files
012-kaopeilian/docs/规划/全链路联调/言迹智能工牌/智能工牌能力分析-配置完成与使用指南.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

7.9 KiB
Raw Permalink Blame History

智能工牌能力分析功能 - 配置完成与使用指南

配置完成状态

1. 后端服务状态

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

# 登录获取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): 用户ID
  • dialogue_history (string): JSON格式的对话历史数组

工作流内部逻辑

  1. 数据库查询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. 数据库查询2: 获取所有已发布课程

    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)

{
  "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字段为空
解决:

-- 更新用户手机号
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.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

环境变量

# 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
状态: 生产就绪