forked from hangshuo652/aurak
0a9588abb7
- Add pagination support to findAll (page, limit query params) - Add findByTemplateId method to service - Add GET /by-template/:templateId endpoint to controller - Service already includes CRUD for QuestionBank and QuestionBankItem
405 lines
11 KiB
Markdown
405 lines
11 KiB
Markdown
# L1 人才育成测评系统设计文档
|
||
|
||
## 文档信息
|
||
|
||
- **版本**: 1.1
|
||
- **日期**: 2026-04-18
|
||
- **状态**: 评审通过
|
||
- **关联**: AI 人才育成计划
|
||
|
||
---
|
||
|
||
## 1. 业务背景
|
||
|
||
### 1.1 目标
|
||
|
||
针对讯和 AI 人才育成计划的 L1 级别(认知与起步),建立系统化的在线评估认证体系。
|
||
|
||
### 1.2 L1 级别定义
|
||
|
||
- **目标**: 建立安全使用习惯,理解基本概念
|
||
- **面向**: 全员
|
||
- **内容**: AI基础概念、安全合规、Prompt入门、IDE基本操作
|
||
- **认证**: 在线考试 ≥90分
|
||
|
||
---
|
||
|
||
## 2. 评估范围
|
||
|
||
### 2.1 五门课程
|
||
|
||
| 序号 | 课程名称 | 对应维度 | 知识组 |
|
||
|------|----------|----------|--------|
|
||
| 1 | 工作能力-安全 | 工作能力 | AI基础概念 + 安全合规 |
|
||
| 2 | 技术能力-LLM | 技术能力 | 大语言模型原理 |
|
||
| 3 | 技术能力-提示词 | 技术能力 | 提示词工程 |
|
||
| 4 | IDE协作能力 | IDE协作 | IDE操作、代码辅助 |
|
||
| 5 | AI开发范式 | AI开发范式 | Flow-State理解 |
|
||
|
||
### 2.2 知识组说明
|
||
|
||
知识组存储在 KnowledgeGroup 中,每个组包含:
|
||
- 课程名称
|
||
- 相关学习资料(文档、PDF等)
|
||
- 评估要点说明
|
||
|
||
---
|
||
|
||
## 3. 评估流程设计
|
||
|
||
### 3.1 基本流程
|
||
|
||
```
|
||
发起评估 → 知识组检索 → 生成问题 → 用户回答 → 即时评分/追问 → 全部完成 → 生成报告 → 发放证书
|
||
```
|
||
|
||
### 3.2 评估步骤
|
||
|
||
1. **发起评估**: 用户选择 L1 认证评估,系统自动关联五个知识组
|
||
2. **问题生成**: 基于五个知识组内容生成 8-10 道理解性问题
|
||
3. **答题交互**: 用户逐题回答,AI 判断理解深度,如不足则追问确认
|
||
4. **即时反馈**: 每题回答后即时反馈分数和简短评语
|
||
5. **最终报告**: 全部完成后生成综合报告
|
||
6. **证书发放**: 通过者发放电子证书
|
||
|
||
### 3.3 追问策略
|
||
|
||
- 每题最多追问 1-2 次以确认理解深度
|
||
- 根据回答情况动态调整追问深度
|
||
- 超过追问次数后强制进入下一题
|
||
|
||
---
|
||
|
||
## 4. 评分设计
|
||
|
||
### 4.1 权重配置
|
||
|
||
| 维度 | 权重 | 分值 |
|
||
|------|------|------|
|
||
| 技术能力-提示词 | 50% | 50分 |
|
||
| 其他四门 | 50% | 50分 |
|
||
|
||
### 4.2 理解深度层级
|
||
|
||
| 分数 | 层级 | 说明 |
|
||
|------|------|------|
|
||
| 1-3 | 基础 | 知道概念,无法应用 |
|
||
| 4-6 | 理解 | 理解含义,可简单应用 |
|
||
| 7-8 | 应用 | 理解本质,能解释原因 |
|
||
| 9-10 | 创新 | 能迁移到新场景 |
|
||
|
||
### 4.3 维度计分规则
|
||
|
||
- **题目维度归属**:生成问题时确定维度归属(从哪个知识组出题就属于哪个维度)
|
||
- **dimensionScores 生成**:每道题记录所属维度,积分时按维度汇总
|
||
|
||
### 4.4 权重计算
|
||
|
||
| 维度 | 权重 | 分值 | 说明 |
|
||
|------|------|------|------|
|
||
| 技术能力-提示词 | 50% | 50分 | 4-5道题 |
|
||
| 其他四门 | 50% | 50分 | 4-5道题,平均分配 |
|
||
|
||
- **计算公式**:
|
||
- 各维度得分 = 该维度所有题目平均分(0-10)
|
||
- 其他四门平均分 = (LLM + IDE + 开发范式 + 工作能力) / 4
|
||
- 总分 = 提示词平均分 × 0.5 + 其他四门平均分 × 0.5
|
||
- 最终分数 = 总分 × 10(转换为100分制)
|
||
|
||
- **示例**:
|
||
- 提示词4题得分:10, 8, 9, 7 → 平均8.5
|
||
- 其他四门各1题得分:9, 7, 8, 6 → 平均7.5
|
||
- 总分 = 8.5×0.5 + 7.5×0.5 = 8.0
|
||
- 最终分数 = 8.0×10 = 80分 → 未通过(需≥90)
|
||
|
||
### 4.5 通过标准
|
||
|
||
- 总分 ≥ 90 分即可通过
|
||
- 各维度分别计分,支持薄弱环节识别
|
||
|
||
### 4.6 题目数量
|
||
|
||
- 总计 8-10 道题
|
||
- 提示词相关 4-5 道(50分)
|
||
- 其他四门 4-5 道(50分)
|
||
|
||
---
|
||
|
||
## 5. 模板设计
|
||
|
||
### 5.1 评估模板字段
|
||
|
||
| 字段 | 类型 | 说明 | 默认值 |
|
||
|------|------|------|--------|
|
||
| name | string | 模板名称 | L1-AI人才育成认证 |
|
||
| description | string | 描述 | L1级别能力认证评估 |
|
||
| linkedGroups | string[] | 关联知识组ID列表 | [] |
|
||
| weightConfig | JSON | 权重配置 | {"prompt":50,"other":50} |
|
||
| difficultyConfig | JSON | 难度配置 | {"standard":60,"advanced":30,"specialist":10} |
|
||
| questionCount | number | 题目数量 | 8-10 |
|
||
| questionCountMin | number | 最小题数 | 8 |
|
||
| questionCountMax | number | 最大题数 | 10 |
|
||
| passingScore | number | 通过分数 | 90 |
|
||
| style | string | 评估风格 | conversation |
|
||
| isActive | boolean | 是否启用 | true |
|
||
|
||
### 5.2 模板配置(扩展现有 AssessmentTemplate)
|
||
|
||
```typescript
|
||
// 新增字段
|
||
@Column({ type: 'simple-json', name: 'linked_group_ids', nullable: true })
|
||
linkedGroupIds: string[]; // 支持多知识组
|
||
|
||
@Column({ type: 'simple-json', name: 'weight_config', nullable: true })
|
||
weightConfig: {
|
||
prompt: number; // 提示词权重 默认50
|
||
other: number; // 其他维度权重 默认50
|
||
};
|
||
|
||
@Column({ type: 'simple-json', name: 'difficulty_config', nullable: true })
|
||
difficultyConfig: {
|
||
standard: number; // 基础题比例 默认60
|
||
advanced: number; // 理解题比例 默认30
|
||
specialist: number; // 创新题比例 默认10
|
||
};
|
||
|
||
@Column({ type: 'int', name: 'question_count_min', default: 8 })
|
||
questionCountMin: number;
|
||
|
||
@Column({ type: 'int', name: 'question_count_max', default: 10 })
|
||
questionCountMax: number;
|
||
|
||
@Column({ type: 'int', name: 'passing_score', default: 90 })
|
||
passingScore: number;
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 角色权限设计
|
||
|
||
### 6.1 角色说明
|
||
|
||
基于现有角色体系扩展,管理员角色(admin/super_admin)具备模板和题目调整权限。
|
||
|
||
| 角色 | 说明 |
|
||
|------|------|
|
||
| user | 普通员工/学员 |
|
||
| admin | 管理员(含题目/模板调整权限) |
|
||
| super_admin | 超级管理员(含全部权限) |
|
||
| instructor | 讲师(可选,复查功能) |
|
||
|
||
### 6.2 权限矩阵
|
||
|
||
| 功能 | 学员 | 管理员 | 超级管理员 | 讲师 |
|
||
|------|------|--------|------------|-----------|------|
|
||
| 发起评估 | ✓ | ✓ | ✓ | - |
|
||
| 查看个人报告 | ✓ | ✓ | ✓ | - |
|
||
| 查看全部报告 | - | ✓ | ✓ | ✓ |
|
||
| 创建/编辑模板 | - | ✓ | ✓ | - |
|
||
| 调整题目配置 | - | ✓ | ✓ | - |
|
||
| 配置知识组 | - | ✓ | ✓ | - |
|
||
| 导出统计数据 | - | ✓ | ✓ | - |
|
||
| 人工复查 | - | - | ✓ | ✓ |
|
||
| 手动调整分数 | - | - | ✓ | ✓ |
|
||
| 系统配置 | - | - | ✓ | - |
|
||
| 用户管理 | - | - | ✓ | - |
|
||
|
||
---
|
||
|
||
## 7. 评估结果设计
|
||
|
||
### 7.1 报告结构
|
||
|
||
```json
|
||
{
|
||
"sessionId": "uuid",
|
||
"userId": "uuid",
|
||
"templateId": "uuid",
|
||
"status": "COMPLETED",
|
||
"totalScore": 95,
|
||
"passed": true,
|
||
"dimensionScores": {
|
||
"prompt": 48,
|
||
"llm": 18,
|
||
"ide": 14,
|
||
"devPattern": 10,
|
||
"workCapability": 5
|
||
},
|
||
"radarData": {
|
||
"prompt": 9.6,
|
||
"llm": 9.0,
|
||
"ide": 7.0,
|
||
"devPattern": 5.0,
|
||
"workCapability": 5.0
|
||
},
|
||
"level": "Proficient",
|
||
"questions": [
|
||
{
|
||
"id": "uuid",
|
||
"dimension": "prompt",
|
||
"questionText": "...",
|
||
"score": 9,
|
||
"followUpCount": 1,
|
||
"feedback": "..."
|
||
}
|
||
],
|
||
"report": "总体评价...",
|
||
"suggestions": ["改进建议1", "改进建议2"],
|
||
"certifiedAt": "2026-04-18T10:00:00Z"
|
||
}
|
||
```
|
||
|
||
### 7.2 雷达图数据
|
||
|
||
五维度得分(归一化到 0-10):
|
||
1. 提示词工程 (prompt) - 出题自提示词知识组
|
||
2. LLM原理 (llm) - 出题自LLM知识组
|
||
3. IDE协作 (ide) - 出题自IDE知识组
|
||
4. AI开发范式 (devPattern) - 出题自开发范式知识组
|
||
5. 工作能力 (workCapability) - 出题自工作能力知识组
|
||
|
||
**维度归属规则**:生成问题时从哪个知识组检索内容,该题就属于哪个维度。
|
||
|
||
### 7.3 证书设计
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| certificateId | 证书唯一ID |
|
||
| userId | 持有者ID |
|
||
| templateId | 评估模板ID |
|
||
| level | 通过级别 |
|
||
| totalScore | 总分 |
|
||
| issuedAt | 发放时间 |
|
||
| expiresAt | 有效期(null=永久) |
|
||
| qrCode | 防伪二维码 |
|
||
|
||
---
|
||
|
||
## 8. 功能设计
|
||
|
||
### 8.1 用户功能
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 发起评估 | 选择模板,开始评估流程 |
|
||
| 继续评估 | 断点续答 |
|
||
| 查看历史 | 查看历次评估记录和报告 |
|
||
| 下载证书 | 下载电子证书PDF |
|
||
| 重考 | 通过后重新考试 |
|
||
|
||
### 8.2 管理员功能
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 模板管理 | 创建/编辑/启用禁用模板 |
|
||
| 知识组配置 | 关联评估模板与知识组 |
|
||
| 评估记录 | 查看所有用户评估记录 |
|
||
| 统计分析 | 查看通过率、各维度得分分布 |
|
||
| 导出报表 | 导出CSV/Excel |
|
||
|
||
### 8.3 讲师功能(可选)
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 人工复查 | 查看并复查评估结果 |
|
||
| 手动评分 | 调整AI评分 |
|
||
| 添加评语 | 添加人工评语 |
|
||
|
||
---
|
||
|
||
## 9. 技术设计
|
||
|
||
### 9.1 现有架构复用
|
||
|
||
基于 AuraK 现有评估系统扩展:
|
||
|
||
```
|
||
AssessmentTemplate (扩展)
|
||
↓
|
||
AssessmentSession (扩展)
|
||
↓
|
||
LangGraph: generator → interviewer → grader → analyzer
|
||
```
|
||
|
||
### 9.2 新增数据库表
|
||
|
||
```sql
|
||
-- 证书表
|
||
CREATE TABLE assessment_certificates (
|
||
id UUID PRIMARY KEY,
|
||
user_id UUID NOT NULL,
|
||
session_id UUID NOT NULL,
|
||
template_id UUID NOT NULL,
|
||
level VARCHAR(50),
|
||
total_score FLOAT,
|
||
qr_code VARCHAR(255),
|
||
issued_at TIMESTAMP,
|
||
created_at TIMESTAMP
|
||
);
|
||
```
|
||
|
||
### 9.3 新增 API 接口
|
||
|
||
| 接口 | 方法 | 说明 | 权限 |
|
||
|------|------|------|------|
|
||
| /templates | GET | 模板列表 | 公开 |
|
||
| /templates | POST | 创建模板 | 管理员 |
|
||
| /templates/:id | PUT | 更新模板 | 管理员 |
|
||
| /templates/:id (软删除) | DELETE | 禁用模板 | 管理员 |
|
||
| /certificates/:sessionId | GET | 获取证书 | 所有者 |
|
||
| /certificates/:sessionId/download | GET | 下载证书PDF | 所有者 |
|
||
| /certificates/verify | POST | 二维码验真 | 公开 |
|
||
| /admin/statistics | GET | 统计报表 | 管理员 |
|
||
|
||
### 9.4 前端页面
|
||
|
||
| 页面 | 说明 |
|
||
|------|------|
|
||
| /assessment/templates | 模板管理 |
|
||
| /assessment/history | 评估历史 |
|
||
| /assessment/report/:id | 评估报告详情 |
|
||
| /assessment/certificate/:id | 证书查看/下载 |
|
||
| /admin/statistics | 管理统计 |
|
||
|
||
---
|
||
|
||
## 10. 实施计划
|
||
|
||
### 10.1 优先级
|
||
|
||
| 优先级 | 模块 | 说明 |
|
||
|--------|------|------|
|
||
| P0 | 模板扩展 | 支持多知识组、权重配置 |
|
||
| P0 | 评估流程 | 适配L1五课程流程 |
|
||
| P0 | 评分逻辑 | 调整追问策略、加权计分 |
|
||
| P1 | 报告生成 | 结构化报告、雷达图数据 |
|
||
| P1 | 证书功能 | 证书生成、下载 |
|
||
| P2 | 统计分析 | 管理后台统计 |
|
||
| P2 | 人工复查 | 讲师功能 |
|
||
|
||
### 10.2 里程碑
|
||
|
||
1. **M1**: 模板扩展 + 基本评估流程(1周)
|
||
2. **M2**: 报告生成 + 证书功能(1周)
|
||
3. **M3**: 管理后台 + 统计分析(1周)
|
||
4. **M4**: 测试优化 + 上线(1周)
|
||
|
||
---
|
||
|
||
## 11. 附录
|
||
|
||
### 11.1 参考文档
|
||
|
||
- AI人才育成计划.md
|
||
- 提示词工程.md
|
||
- 大语言模型入门.md
|
||
- AI安全使用指南.md
|
||
- Open Code使用指南.md
|
||
- GitHub Copilot使用指南.md
|
||
- Claude Code使用指南.md
|
||
- L1-开发范式是什么.md
|
||
|
||
### 11.2 现有代码参考
|
||
|
||
- `server/src/assessment/` - 评估模块
|
||
- `web/components/views/AssessmentView.tsx` - 前端评估界面 |