Files
012-kaopeilian/docs/规划/全链路联调/Ai工作流/dify/考试工作流联调文档.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

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

3.3 KiB
Raw Blame History

考试工作流联调文档

版本: v2.0
状态: 已完成
最后更新: 2025-10-12


一、基本信息

考试页面

  • URL http://localhost:3001/trainee/exam?courseId=1
  • 流程: 三轮考试(正式考试 + 两次错题重考)

两个Dify工作流

工作流1试题生成器

  • API http://dify.ireborn.com.cn/v1/workflows/run
  • Token app-tDlrmXyS9NtWCShsOx5FH49L
  • 功能: 根据课程知识点生成试题

工作流2答案判断器

  • API http://dify.ireborn.com.cn/v1/workflows/run
  • Token app-FvMdrvbRBz547DVZEorgO1WT
  • 功能: 判断填空题和问答题答案

二、API接口

后端接口列表

接口 方法 功能
/api/v1/exams/generate POST 生成试题
/api/v1/exams/judge-answer POST 判断主观题答案
/api/v1/exams/record-mistake POST 记录错题
/api/v1/exams/mistakes GET 获取错题记录

文件: kaopeilian-backend/app/api/v1/exam.py


三、参数说明

生成试题参数

第一轮不传mistake_records

{
  "course_id": 1,
  "single_choice_count": 4,
  "multiple_choice_count": 2,
  "true_false_count": 1,
  "fill_blank_count": 2,
  "essay_count": 1,
  "difficulty_level": 3
}

第二、三轮(传入错题记录):

{
  "course_id": 1,
  "mistake_records": "[{\"question_id\":null,\"knowledge_point_id\":456,...}]",
  "single_choice_count": 2,
  ...
}

⚠️ 关键

  • 第一轮:完全不传mistake_records参数
  • 第二三轮传入JSON字符串格式

判断答案参数

{
  "question": "题目内容",
  "correct_answer": "正确答案",
  "user_answer": "用户答案",
  "analysis": "答案解析"
}

返回: result: "正确"/"错误"is_correct: true/false


四、数据库表

exam_mistakes错题记录表

核心字段:

  • user_id, exam_id必填外键CASCADE
  • question_id, knowledge_point_id可空SET NULL
  • question_content, correct_answer, user_answer

索引: user_id, exam_id, knowledge_point_id


五、三轮考试流程

第一轮
  ↓ 答错N题
  ├─ 记录错题到数据库
  └─ 获取错题记录 → 第二轮

第二轮(针对第一轮错题)
  ↓ 答错M题
  ├─ 记录错题到数据库
  └─ 获取错题记录 → 第三轮

第三轮(针对第二轮错题)
  ↓ 完成
  └─ 显示最终成绩

六、关键技术点

1. 路由顺序

# ✅ 正确
@router.get("/mistakes")      # 具体路由在前
@router.get("/{exam_id}")     # 动态路由在后

2. 数据格式转换

Dify → 前端:

single_choice → single
multiple_choice → multiple
true_false → judge
fill_blank → blank
essay → essay

3. 超时配置

  • 试题生成300秒5分钟
  • 答案判断60秒1分钟

七、测试验证

测试账号: admin / admin123
测试课程: courseId=1

验证要点:

  • 试题成功生成
  • 所有题型正常答题
  • 错题正确记录
  • AI判断正常工作
  • 三轮流程完整

文档维护: 开发团队
参考: 试题生成器的核心提示词与输出示例.md