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

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

26 KiB
Raw Blame History

考试工作流联调文档

一、功能概述

1.1 考试页面入口

  • 页面地址http://localhost:3001/trainee/exam?courseId=1
  • 触发时机:用户打开考试页面后,自动触发 Dify 考试工作流生成试题

1.2 两个Dify工作流

工作流1试题生成器

  • 功能:根据课程知识点和错题记录,生成考试试题
  • 返回格式JSON包含完整试题内容

工作流2答案判断工作流主观题判断器

  • 功能:判断填空题和问答题的答案正确性
  • 适用题型:填空题、问答题
  • 输入参数
    • 题目内容
    • 标准答案
    • 用户答案
  • 返回结果:判断正确或错误,如果返回回答错误,则需要前端展示正确答案,并需要用户点击“记住了”方可进入下一题。

二、考试流程设计

2.1 考试启动流程

用户打开考试页面
    ↓
前端显示:试题动态生成中
    ↓
调用 Dify 试题生成器工作流
    ↓
工作流返回 JSON 格式的试题
    ↓
前端解析 JSON提取试题
    ↓
显示第一题

2.2 答题交互流程

单选题

  1. 用户点击选择答案
  2. 立刻判断正确与错误(无需点击提交)
  3. 正确:自动进入下一题
  4. 错误
    • 显示"回答错误"提示
    • 显示该题正确答案
    • 记录到错题记录数据库
    • 用户点击"记住了"按钮后进入下一题

多选题

  1. 用户勾选多个选项
  2. 用户点击"提交"按钮
  3. 判断逻辑同单选题

判断题

  1. 用户点击选择答案(正确/错误)
  2. 立刻判断(无需点击提交)
  3. 判断逻辑同单选题

填空题

  1. 用户输入答案
  2. 用户点击"提交"按钮
  3. 调用 Dify "答案判断工作流" 判断答案正确性
  4. 工作流返回判断结果
  5. 正确:自动进入下一题
  6. 错误:显示错误提示、标准答案,记录错题,用户点击"记住了"后进入下一题

问答题

  1. 用户输入答案
  2. 用户点击"提交"按钮
  3. 调用 Dify "答案判断工作流" 判断答案正确性
  4. 判断逻辑同填空题

2.3 考试轮次与重考机制

考试轮次规则

  • 考试总共3轮:第一次正式考试 + 两次错题重考
  • 第一轮考试:从课程所有知识点中随机选取生成试题
  • 第二轮考试错题重考1基于第一轮的错题传递完整错题详情给 Dify 工作流重新生成针对性试题
  • 第三轮考试错题重考2基于第二轮的错题传递完整错题详情给 Dify 工作流重新生成针对性试题

考试中断规则

  • 考试中断后不可恢复
  • 用户重新加载页面会重新触发工作流,生成新的考试
  • 只有完成一轮考试后,才会记录得分和错题记录

三、Dify工作流参数设计

3.1 考试试题生成器 - 输入参数

参数名称 类型 必填 说明
course_id Integer 必填 课程ID用于获取该课程下所有资料的知识点
position_id Integer 必填 岗位ID让工作流根据岗位特征设计题目
mistake_records Array[Object] 选填 错题记录详情数组(第二、三轮考试时传入)
single_choice_count Integer 必填 单选题数量
multiple_choice_count Integer 必填 多选题数量
true_false_count Integer 必填 判断题数量
fill_blank_count Integer 必填 填空题数量
essay_count Integer 必填 问答题数量
difficulty_level Integer 必填 难度系数1-5

参数说明

  • course_idDify 工作流通过 SQL 执行器和系统数据库 API 服务,从课程下所有资料中随机选取知识点

  • position_id:从用户信息中自动获取,由管理员在岗位管理页面分配给用户

  • mistake_records:错题记录详情数组,每个对象包含:

    • question_id题目ID
    • knowledge_point_id知识点ID
    • question_content:题目内容
    • correct_answer:正确答案
    • user_answer:用户答案

    第二轮、第三轮考试时,传入上一轮的完整错题详情,工作流基于这些错题重新生成针对性试题

3.2 考试试题生成器 - API调用示例

Dify工作流API端点

curl -X POST 'http://dify.ireborn.com.cn/v1/workflows/run' \
--header 'Authorization: Bearer app-tDlrmXyS9NtWCShsOx5FH49L' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {
        "course_id": 1,
        "position_id": 3,
        "mistake_records": [],
        "single_choice_count": 10,
        "multiple_choice_count": 5,
        "true_false_count": 5,
        "fill_blank_count": 2,
        "essay_count": 1,
        "difficulty_level": 3
    },
    "response_mode": "streaming",
    "user": "kaopeilian"
}'

第二/三轮错题重考时的调用示例

curl -X POST 'http://dify.ireborn.com.cn/v1/workflows/run' \
--header 'Authorization: Bearer app-tDlrmXyS9NtWCShsOx5FH49L' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {
        "course_id": 1,
        "position_id": 3,
        "mistake_records": [
            {
                "question_id": 123,
                "knowledge_point_id": 456,
                "question_content": "皮肤的最外层是什么?",
                "correct_answer": "表皮",
                "user_answer": "真皮"
            }
        ],
        "single_choice_count": 5,
        "multiple_choice_count": 3,
        "true_false_count": 2,
        "fill_blank_count": 1,
        "essay_count": 1,
        "difficulty_level": 3
    },
    "response_mode": "streaming",
    "user": "kaopeilian"
}'

3.3 考试试题生成器 - 输出格式

JSON格式示例待Dify工作流开发完成后补充

{
  "exam_name": "皮肤生理学基础考试",
  "total_questions": 20,
  "questions": [
    {
      "id": 1,
      "type": "single_choice",
      "title": "题目内容",
      "options": [...],
      "correct_answer": "A",
      "explanation": "解析内容",
      "knowledge_point_id": 123
    },
    ...
  ]
}

3.4 答案判断工作流 - 输入参数

参数名称 类型 必填 说明
question String 必填 题目内容
correct_answer String 必填 标准答案
user_answer String 必填 用户提交的答案

3.5 答案判断工作流 - API调用示例

Dify工作流API端点

curl -X POST 'http://dify.ireborn.com.cn/v1/workflows/run' \
--header 'Authorization: Bearer app-FvMdrvbRBz547DVZEorgO1WT' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {
        "question": "肉毒素注射后____小时内不能平躺",
        "correct_answer": "4",
        "user_answer": "4"
    },
    "response_mode": "streaming",
    "user": "kaopeilian"
}'

填空题示例

curl -X POST 'http://dify.ireborn.com.cn/v1/workflows/run' \
--header 'Authorization: Bearer app-FvMdrvbRBz547DVZEorgO1WT' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {
        "question": "透明质酸的主要功效是________",
        "correct_answer": "保湿补水",
        "user_answer": "补水保湿"
    },
    "response_mode": "streaming",
    "user": "kaopeilian"
}'

问答题示例

curl -X POST 'http://dify.ireborn.com.cn/v1/workflows/run' \
--header 'Authorization: Bearer app-FvMdrvbRBz547DVZEorgO1WT' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {
        "question": "请简述皮肤的三层结构及各自功能",
        "correct_answer": "皮肤分为表皮、真皮和皮下组织三层。表皮起保护作用,真皮提供营养和支撑,皮下组织储存能量和保温。",
        "user_answer": "皮肤有表皮负责保护,真皮提供营养支持,皮下组织用于储能保温。"
    },
    "response_mode": "streaming",
    "user": "kaopeilian"
}'

3.6 答案判断工作流 - 输出格式

{
  "is_correct": true,
  "correct_answer": "标准答案内容",
  "feedback": "判断反馈信息(可选)"
}

说明

  • is_correct:布尔值,true 表示正确,false 表示错误
  • correct_answer:标准答案(当答错时,前端需要展示此答案)
  • feedback:可选的反馈信息
  • 重要:如果返回 is_correct: false,前端需要:
    1. 显示"回答错误"提示
    2. 显示 correct_answer 字段的正确答案
    3. 显示"记住了"按钮,用户点击后才能进入下一题
    4. 记录错题到数据库

四、数据库设计

4.1 课程考试设置表 (course_exam_settings)

表结构:

CREATE TABLE IF NOT EXISTS course_exam_settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    course_id INT NOT NULL UNIQUE COMMENT '课程ID',
    
    -- 题型数量设置
    single_choice_count INT NOT NULL DEFAULT 10 COMMENT '单选题数量',
    multiple_choice_count INT NOT NULL DEFAULT 5 COMMENT '多选题数量',
    true_false_count INT NOT NULL DEFAULT 5 COMMENT '判断题数量',
    fill_blank_count INT NOT NULL DEFAULT 0 COMMENT '填空题数量',
    essay_count INT NOT NULL DEFAULT 0 COMMENT '问答题数量',
    
    -- 考试参数设置
    duration_minutes INT NOT NULL DEFAULT 60 COMMENT '考试时长(分钟)',
    difficulty_level INT NOT NULL DEFAULT 3 COMMENT '难度系数(1-5)',
    passing_score INT NOT NULL DEFAULT 60 COMMENT '及格分数',
    
    -- 其他设置
    is_enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
    show_answer_immediately BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否立即显示答案',
    allow_retake BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否允许重考',
    max_retake_times INT COMMENT '最大重考次数',
    
    -- 审计字段
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    created_by INT COMMENT '创建人ID',
    updated_by INT COMMENT '更新人ID',
    is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
    deleted_at DATETIME,
    deleted_by INT COMMENT '删除人ID',
    
    FOREIGN KEY (course_id) REFERENCES courses(id),
    INDEX ix_course_exam_settings_id (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程考试设置表';

新增字段说明:

  • essay_count:问答题数量字段(需要添加到现有表结构中)

4.2 错题记录表 (exam_mistakes)

注意:当前数据库中不存在错题记录表(已确认 2-联调 dify 知识拆解已完成.sql 备份中无此表),需要新建。

表结构定义:

CREATE TABLE IF NOT EXISTS exam_mistakes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- 核心关联字段(必需)
    user_id INT NOT NULL COMMENT '用户ID',
    exam_id INT NOT NULL COMMENT '考试ID',
    question_id INT COMMENT '题目IDAI生成的题目可能为空',
    knowledge_point_id INT COMMENT '关联的知识点ID',
    
    -- 题目核心信息(必需)
    question_content TEXT NOT NULL COMMENT '题目内容',
    correct_answer TEXT NOT NULL COMMENT '正确答案',
    user_answer TEXT COMMENT '用户答案',
    
    -- 审计字段
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    FOREIGN KEY (exam_id) REFERENCES exams(id) ON DELETE CASCADE,
    FOREIGN KEY (question_id) REFERENCES questions(id) ON DELETE SET NULL,
    FOREIGN KEY (knowledge_point_id) REFERENCES knowledge_points(id) ON DELETE SET NULL,
    
    INDEX idx_user_id (user_id),
    INDEX idx_exam_id (exam_id),
    INDEX idx_knowledge_point_id (knowledge_point_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='错题记录表';

核心字段说明:

  • 包含6个核心字段user_idexam_idquestion_idknowledge_point_idquestion_contentcorrect_answeruser_answer
  • 简化设计,去除冗余字段(如错误次数、掌握状态等),聚焦核心功能
  • question_id 可为空AI动态生成的题目可能不在 questions 表中

4.3 岗位表 (positions)

岗位信息来源于岗位管理页面,表结构参考:

CREATE TABLE `positions` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(100) NOT NULL COMMENT '岗位名称',
    `code` VARCHAR(100) NOT NULL UNIQUE COMMENT '岗位编码',
    `description` TEXT COMMENT '岗位描述',
    `parent_id` INT NULL COMMENT '上级岗位ID',
    `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态',
    `skills` JSON NULL COMMENT '核心技能',
    `level` VARCHAR(20) NULL COMMENT '岗位等级',
    `sort_order` INT DEFAULT 0 COMMENT '排序',
    -- 其他审计字段...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位表';

4.4 题目类型说明 (questions表)

CREATE TABLE `questions` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `course_id` INT NOT NULL COMMENT '课程ID',
    `question_type` VARCHAR(20) NOT NULL COMMENT '题目类型: single_choice, multiple_choice, true_false, fill_blank, essay',
    `title` TEXT NOT NULL COMMENT '题目标题',
    `content` TEXT COMMENT '题目内容',
    `options` JSON COMMENT '选项JSON格式',
    `correct_answer` TEXT NOT NULL COMMENT '正确答案',
    `explanation` TEXT COMMENT '答案解释',
    `score` FLOAT DEFAULT 10.0 COMMENT '分值',
    `difficulty` VARCHAR(10) DEFAULT 'medium' COMMENT '难度等级: easy, medium, hard',
    -- 其他字段...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='题目表';

题型映射关系:

  • single_choice:单选题
  • multiple_choice:多选题
  • true_false:判断题
  • fill_blank:填空题
  • essay:问答题

五、前后端接口设计

5.1 获取考试设置

接口GET /api/exam/settings?courseId={courseId}

响应示例:

{
  "course_id": 1,
  "single_choice_count": 10,
  "multiple_choice_count": 5,
  "true_false_count": 5,
  "fill_blank_count": 2,
  "essay_count": 1,
  "difficulty_level": 3,
  "duration_minutes": 60,
  "passing_score": 60
}

5.2 触发考试试题生成

接口POST /api/exam/generate

请求体(第一轮考试):

{
  "course_id": 1,
  "position_id": 3,
  "mistake_records": [],
  "single_choice_count": 10,
  "multiple_choice_count": 5,
  "true_false_count": 5,
  "fill_blank_count": 2,
  "essay_count": 1,
  "difficulty_level": 3
}

请求体(第二/三轮错题重考):

{
  "course_id": 1,
  "position_id": 3,
  "mistake_records": [
    {
      "question_id": 123,
      "knowledge_point_id": 456,
      "question_content": "题目内容",
      "correct_answer": "正确答案",
      "user_answer": "用户答案"
    }
  ],
  "single_choice_count": 5,
  "multiple_choice_count": 3,
  "true_false_count": 2,
  "fill_blank_count": 1,
  "essay_count": 1,
  "difficulty_level": 3
}

响应: Dify工作流返回的JSON格式待定

说明:

  • position_id 从当前登录用户信息中自动获取,不允许用户手动选择
  • 第一轮考试时 mistake_records 为空数组
  • 第二、三轮考试时传入上一轮的完整错题记录

5.3 提交主观题答案判断

接口POST /api/exam/judge-answer

请求体:

{
  "question": "肉毒素注射后____小时内不能平躺",
  "correct_answer": "4",
  "user_answer": "4"
}

响应:

{
  "is_correct": true,
  "correct_answer": "4",
  "feedback": "回答正确!"
}

5.4 记录错题

接口POST /api/exam/record-mistake

请求体:

{
  "user_id": 1,
  "exam_id": 123,
  "question_id": 456,
  "knowledge_point_id": 789,
  "question_content": "题目内容",
  "correct_answer": "A",
  "user_answer": "B"
}

说明:

  • user_id 从当前登录用户信息中自动获取
  • 只记录核心字段,简化设计

5.5 获取错题记录

接口GET /api/exam/mistakes?exam_id={exam_id}

响应:

{
  "mistakes": [
    {
      "question_id": 123,
      "knowledge_point_id": 456,
      "question_content": "题目内容",
      "correct_answer": "正确答案",
      "user_answer": "用户答案"
    }
  ]
}

说明:

  • 用于第二、三轮考试时获取上一轮的错题记录
  • 返回的数据可直接作为 mistake_records 参数传给考试生成接口

六、待办事项与开发任务

6.1 数据库修改任务

  • course_exam_settings 表中新增 essay_count 字段
  • 创建 exam_mistakes 错题记录表
  • 更新数据库架构文档:/kaopeilian-backend/数据库架构-统一版.md

6.2 后端开发任务

  • 更新 CourseExamSettings 模型,添加 essay_count 字段
  • 创建 ExamMistake 模型包含7个核心字段
  • 开发考试试题生成接口调用Dify工作流
    • 配置 Dify API 端点:http://dify.ireborn.com.cn/v1/workflows/run
    • 配置 Authorization Tokenapp-tDlrmXyS9NtWCShsOx5FH49L
    • 实现流式响应streaming数据处理
    • 从用户信息中自动获取 position_id
    • 支持第一轮考试mistake_records为空
    • 支持第二、三轮错题重考(传入完整错题详情)
  • 开发主观题答案判断接口调用Dify答案判断工作流
    • 配置 Dify API 端点:http://dify.ireborn.com.cn/v1/workflows/run
    • 配置 Authorization Tokenapp-FvMdrvbRBz547DVZEorgO1WT
    • 实现流式响应数据处理
    • 返回判断结果和正确答案
  • 开发错题记录接口(只记录核心字段)
  • 开发获取错题记录接口(用于错题重考)

6.3 前端开发任务

  • 在课程编辑页面(http://localhost:3001/manager/edit-course/1)的"考试设置"选项卡中:
    • 添加"问答题数量"essay_count设置字段
    • 确保所有题型数量字段都已存在并正常工作
  • 开发考试页面(http://localhost:3001/trainee/exam?courseId=1
    • 页面加载时显示"试题动态生成中"状态
    • 从用户信息中自动获取 position_id(不显示给用户)
    • 判断当前是第几轮考试(第一轮/第二轮/第三轮)
    • 第一轮考试:传空的 mistake_records 数组
    • 第二、三轮考试:调用接口获取上一轮错题记录,传入完整错题详情
  • 实现答题交互逻辑:
    • 单选题/判断题:点击后立即判断,无需提交按钮
    • 多选题/填空题/问答题:需要点击"提交"按钮
    • 主观题(填空、问答):调用答案判断工作流接口
  • 实现错题处理:
    • 答错时显示"回答错误"提示
    • 显示正确答案
    • 显示"记住了"按钮
    • 点击"记住了"后进入下一题
    • 答错题目立即调用接口记录到错题表
  • 实现考试轮次管理:
    • 考试中断后不可恢复(刷新页面重新开始)
    • 完成一轮考试后记录得分和错题
    • 显示当前是第几轮考试
    • 完成第三轮后结束考试流程

6.4 Dify工作流开发任务

  • 开发"考试试题生成器"工作流
    • 配置 SQL 执行器连接系统数据库
    • 实现第一轮考试逻辑:
      • 根据课程ID从所有资料中随机选取知识点
      • 根据岗位ID特征生成符合岗位特点的题目
      • 按题型数量生成试题
    • 实现第二、三轮错题重考逻辑:
      • 接收完整错题详情数组(包含题目内容、正确答案、用户答案)
      • 基于错题对应的知识点重新生成针对性试题
      • 可以适当调整题目难度和角度
    • 定义并测试输出JSON格式
  • 开发"答案判断工作流"(主观题判断器)
    • 实现填空题答案判断逻辑(支持多种答案表述)
    • 实现问答题答案判断逻辑(语义理解判断)
    • 定义并测试输出JSON格式
    • 返回判断结果和标准答案

七、三轮考试完整流程图

┌─────────────────────────────────────────────────────────────┐
│                      第一轮考试(正式考试)                      │
├─────────────────────────────────────────────────────────────┤
│ 1. 用户进入考试页面                                            │
│ 2. 自动获取用户的 position_id                                  │
│ 3. 调用 Dify 工作流生成试题mistake_records = []            │
│ 4. 用户答题,系统实时判断对错                                   │
│ 5. 答错题目立即记录到 exam_mistakes 表                         │
│ 6. 完成考试,记录得分                                          │
└─────────────────────────────────────────────────────────────┘
                              ↓
                      是否有错题?
                              ↓ 是
┌─────────────────────────────────────────────────────────────┐
│                    第二轮考试错题重考1                       │
├─────────────────────────────────────────────────────────────┤
│ 1. 调用接口获取第一轮的错题记录                                 │
│ 2. 传入完整错题详情给 Dify 工作流                              │
│ 3. Dify 基于错题知识点重新生成针对性试题                       │
│ 4. 用户答题,判断对错                                          │
│ 5. 答错题目记录到 exam_mistakes 表(关联第二轮考试)           │
│ 6. 完成考试,记录得分                                          │
└─────────────────────────────────────────────────────────────┘
                              ↓
                      是否有错题?
                              ↓ 是
┌─────────────────────────────────────────────────────────────┐
│                    第三轮考试错题重考2                       │
├─────────────────────────────────────────────────────────────┤
│ 1. 调用接口获取第二轮的错题记录                                 │
│ 2. 传入完整错题详情给 Dify 工作流                              │
│ 3. Dify 基于错题知识点重新生成针对性试题                       │
│ 4. 用户答题,判断对错                                          │
│ 5. 完成考试,记录最终得分                                      │
│ 6. 结束考试流程                                                │
└─────────────────────────────────────────────────────────────┘

关键要点:

  1. 每轮考试都是独立的 exam 记录
  2. 错题记录会关联到具体的 exam_id
  3. 第二、三轮考试传入的 mistake_records 是上一轮的错题详情而不是知识点ID
  4. 岗位ID始终从用户信息中获取三轮考试都使用相同的岗位ID
  5. 考试中断后不可恢复,重新进入会重新开始当前轮次

八、注意事项与规范

8.1 开发环境

  • 本地开发测试环境使用 localhost
  • 全部使用 Docker 容器部署,配合热重载

8.2 数据库操作规范

  • ⚠️ 不要重置或初始化数据库,除非经过确认
  • 严格区分开发测试环境和生产环境

8.3 系统用户特征

  • 本系统的用户是轻医美连锁品牌的员工
  • 岗位包括:区域经理、店长、美容顾问、医美咨询师、美容技师、护士、前台接待、市场专员等

8.4 联调完成后必做事项

  1. 将联调、修复的经验更新至:考培练系统规划/全链路联调/联调经验汇总.md
  2. 将规范与约定更新至:考培练系统规划/全链路联调/规范与约定-团队基线.md
  3. 更新前需阅读原文,除了新增内容,还要注意删除错误内容
  4. 如果修改了数据库结构,更新至:/kaopeilian-backend/数据库架构-统一版.md

九、参考信息

9.1 Dify工作流API信息

试题生成器工作流

  • API地址http://dify.ireborn.com.cn/v1/workflows/run
  • Authorization Tokenapp-tDlrmXyS9NtWCShsOx5FH49L
  • 用户标识kaopeilian
  • 响应模式streaming

答案判断工作流

  • API地址http://dify.ireborn.com.cn/v1/workflows/run
  • Authorization Tokenapp-FvMdrvbRBz547DVZEorgO1WT
  • 用户标识kaopeilian
  • 响应模式streaming

⚠️ 注意

  • 两个工作流使用不同的 Authorization Token
  • 都使用相同的API地址
  • 响应模式均为 streaming(流式响应)
  • 后端调用时需要处理流式响应数据

9.2 相关页面

  • 考试页面http://localhost:3001/trainee/exam?courseId=1
  • 课程编辑页面(含考试设置)http://localhost:3001/manager/edit-course/1
  • 岗位管理页面http://localhost:3001/admin/position-management

9.3 相关文档

  • 数据库架构文档:/kaopeilian-backend/数据库架构-统一版.md
  • 联调经验汇总:考培练系统规划/全链路联调/联调经验汇总.md
  • 规范与约定:考培练系统规划/全链路联调/规范与约定-团队基线.md
  • 数据库备份(已确认无错题表):考培练系统规划/数据库-里程碑备份/2-联调 dify 知识拆解已完成.sql

文档版本v1.0
最后更新2025-09-30
维护者:考培练系统开发团队