=test_update_homework_tests_and_work_log
Some checks failed
CI / build-deploy (push) Has been cancelled
Some checks failed
CI / build-deploy (push) Has been cancelled
This commit is contained in:
@@ -242,6 +242,35 @@
|
||||
|
||||
- **目的**: 创建考试基础信息。
|
||||
- **关键组件**: `ExamForm`
|
||||
- **AI 生成执行逻辑**:
|
||||
- **入口**:
|
||||
- 选择 `Assembly Mode` 为 `AI Generation`
|
||||
- 表单增加 `aiQuestionCount` 与 `aiPrompt`,提交时走 `createAiExamAction`
|
||||
- **请求数据组装**:
|
||||
- 复用基础字段:`title`、`subject`、`grade`、`difficulty`、`totalScore`、`durationMin`、`scheduledAt`
|
||||
- 可选字段:`aiQuestionCount`、`aiPrompt`
|
||||
- **服务端校验**:
|
||||
- `AiExamCreateSchema` 校验基础字段与 AI 字段
|
||||
- 解析失败直接返回 `Invalid form data`
|
||||
- **AI 调用**:
|
||||
- 通过 `createAiChatCompletion` 发送系统提示与用户输入
|
||||
- 使用 `env.AI_MODEL`,默认 `gpt-4o-mini`
|
||||
- 期望输出 JSON,仅包含 `sections` 或 `questions`
|
||||
- **响应解析**:
|
||||
- `extractJson` 支持从纯 JSON 或代码块中提取
|
||||
- `AiExamResponseSchema` 校验题型与字段结构
|
||||
- 无题目返回 `AI returned no questions`
|
||||
- **题目裁剪与分值归一化**:
|
||||
- 若设置题量,按顺序裁剪题目或分组
|
||||
- `normalizeScores` 按 `totalScore` 归一化各题分值
|
||||
- **题目落库**:
|
||||
- 将 AI 题目转换为题库格式 `{ text, options }`
|
||||
- 写入 `questions` 表,并记录 `authorId`
|
||||
- **结构与关联写入**:
|
||||
- 生成 `structure`(按分组或平铺题目)
|
||||
- 写入 `exams` 表,同时写入 `exam_questions`
|
||||
- **后续跳转**:
|
||||
- 创建成功后跳转 `/teacher/exams/[id]/build` 继续编辑
|
||||
|
||||
### 3.17 组卷 `/teacher/exams/[id]/build`
|
||||
实现:[exams/[id]/build/page.tsx](file:///e:/Desktop/CICD/src/app/(dashboard)/teacher/exams/%5Bid%5D/build/page.tsx)
|
||||
|
||||
Reference in New Issue
Block a user