AI 智能命题¶
模块目标¶
程序设计训练(Python)课程的教师与助教需要根据每节课的教学内容设计配套 OJ 题目。命题过程通常包含知识点梳理、难度控制、题面编写、测试点构造以及题目测试等多个环节,需要投入较多时间。
本模块要求开发 AI 智能命题功能,辅助课程教师与助教完成每节课的 OJ 出题工作。命题人员可以输入题目必须覆盖的知识点、预期难度以及其他不同维度的要求;系统应能够据此独立完成题目设计、题目配置生成和测试点生成等多个环节,生成可用于 OJ 题目新增或编辑的完整结果。
本模块不限定具体的页面结构、任务流程或技术方案。实现可以围绕真实命题需求扩展检索、脚本执行、测试数据生成等能力。
前置知识要求¶
| 技术点 | 推荐学习内容 |
|---|---|
| 大语言模型 API | HTTP 请求、JSON 数据、模型输入与输出 |
| 模型配置 | 提供商 URL、模型名称、模型密钥 |
| 异步任务 | 后台任务、任务状态管理、异常处理 |
| 实时通信 | 流式响应、SSE、WebSocket 或状态轮询 |
| 用量统计 | 输入/输出 Token、模型价格与费用计算 |
| 配置安全 | API 密钥等敏感信息的保存与使用 |
上述内容不限定具体框架或实现协议,可参考程序设计训练(Rust)课程的 Agent 架构了解相关概念。
基本功能要求¶
R1. 出题交互界面¶
系统应提供可操作的 AI 智能命题界面。可以在基础模块的题目新增、题目编辑页面上扩展相关功能,也可以新增独立的 AI 智能命题页面。
界面应能够提交命题需求、展示处理状态和结果,并支持将所得内容用于后续的题目新增、审阅或修改。具体交互形式不作统一限制。
R2. 可自定义模型配置¶
系统应支持配置以下模型信息:
- 提供商 URL;
- 模型名称;
- 模型密钥。
配置结果应实际应用于后续模型请求,不得将服务提供商、模型名称或模型密钥固定在程序代码中。模型密钥属于敏感信息,不应在日志、页面响应或错误信息中明文泄露。
R3. 实时进度渲染和中断功能¶
AI 智能命题任务执行期间,界面应持续展示可观察的进度信息,不得仅在任务全部完成后返回最终结果。
系统应提供任务中断功能。中断操作应能够实际终止当前任务或阻止其继续执行,并在界面中明确展示任务已中断的状态。具体可采用流式响应、SSE、WebSocket、轮询等方式实现,不限定技术方案。
R4. Token 用量与价格统计¶
系统应统计模型调用产生的 Token 用量,并根据相应的模型价格计算调用费用。统计结果应在界面中清晰展示,至少能够反映当前任务的 Token 用量和费用。
若模型接口能够分别返回输入 Token 和输出 Token,应分别记录和展示。费用统计应说明所采用的计价依据;模型接口不提供完整用量信息时,应明确标注统计方式及其限制。
设计参考¶
以下示例用于说明本模块关注的设计方向,不限定具体实现方式,也不要求采用其中列出的全部功能。
正例¶
示例一:通过多次迭代完善题目¶
允许 AI 按照相应改编要求修改已生成题目(或者其他已有题目)。例如,调整题目的背景与考察内容、修改/加强测试用例,或在保留原有考查目标的基础上设计新的题目情境。
该设计允许 AI 通过多次迭代逐渐完成命题任务,出题人可以根据当前结果继续提出修改要求。具体的迭代流程和交互形式应根据实际设计确定。
示例二:通过工具扩展能力¶
为 AI 提供若干与命题场景相关的可调用工具。例如,通过 Web 检索相关题目设计资料,或通过服务器 CLI 编写并运行测试数据生成脚本。
该设计利用外部工具扩展模型能力,使系统能够完成单纯文本生成以外的命题任务。工具的选择、权限和执行范围应根据实际设计确定。
反例¶
示例三:与基础功能相互割裂¶
仅在页面中添加“AI 出题”按钮,触发后返回一个包含题目信息的压缩包。
该功能与已有题目管理模块相互割裂,所得内容不能便捷地进入题目审阅、编辑或维护流程。
示例四:未能有效辅助命题¶
AI 功能只能完成单一的文本生成,或者所得题目与输入的知识点、约束条件明显无关。
该功能未能有效处理所声明的命题需求,出题的主要工作仍需人工重新完成。
评分标准¶
本模块满分为 10 分。
| 评分项 | 分值 | 评分内容 |
|---|---|---|
| R1. 出题交互界面 | 1 | 是否提供完整、可操作的 AI 智能命题界面;是否能够提交需求、展示结果,并与题目新增或修改等操作合理衔接 |
| R2. 可自定义模型配置 | 1 | 是否支持配置提供商 URL、模型名称和模型密钥;配置是否实际应用于模型请求 |
| R3. 实时进度渲染和中断功能 | 1 | 是否能够实时展示任务进度;是否能够有效中断正在执行的任务,并正确反馈任务状态 |
| R4. Token 用量与价格统计 | 1 | 是否能够统计并清晰展示 Token 用量和模型调用费用;费用计算依据是否明确 |
| 题目合理性 | 2 | AI 智能命题生成的题目是否满足真实课程要求,是否符合输入的知识点、难度及其他命题要求 |
| 测试用例有效性 | 2 | 测试用例是否覆盖不同边界条件,数据规模和构造是否能有效区分用户提交的不同时间复杂度算法 |
| 功能易用性 | 2 | 交互流程是否符合使用习惯,操作是否便捷,功能状态和结果展示是否清晰 |
| 合计 | 10 |