【Codex】用知识点配置模块构建考试与教学知识图谱

教育管理系统知识点配置模块用Codex生成项目代码

知识点配置是教育管理系统中题库、考试分析和教学内容推荐的基础口径。它维护学段、学科、知识点层级和启用状态,让题目、教材章节和成绩分析能引用同一套结构化知识体系。

本文基于 KnowledgePoint 模型、KnowledgePointViewSet、内置知识点目录和 FastCrud 树表页面,说明如何把层级配置、初始化、清空重置和页面回显,转换成 Codex 可执行的项目代码生成任务。

文章目录

设计与需求

知识点配置不能只理解成普通 CRUD。server_backend/modules/Config/models.py 中的 KnowledgePoint 使用 codepcode 建立父子关系,level 表示知识点层级,type_point_subjecttype_point_level 定义学科与学段。后端接口位于 server_backend/modules/Config/views_app/KnowledgePoint.py,前端页面位于 server_vue3/src/views/modules/Config/KnowledgePoint/index.vueapi.tscrud.tsx

交给 Codex 的任务需要把业务需求拆成树形模型、初始化接口、查询筛选、表单校验、权限验收和数据联动。页面不仅要能新增、编辑、删除节点,还要支持按 pcode 懒加载树表、通过 get_init_menu 查看哪些学段已初始化、通过 update_subject_knowledge_point 从内置 JSON 目录生成知识点树。
验收阶段
生成阶段
设计阶段
输入阶段
知识体系
学段学科
源码上下文
树形模型
初始化接口
页面树表
权限验收
读取源码
生成后端
生成前端
联动检查
PDD验收

需求层描述 设计层转换 Codex 代码生成方向
知识点需要统一层级 使用 codepcodelevel 建立树形结构。 生成树形模型、父子节点校验和懒加载查询。
不同学段学科需要区分 使用 type_point_leveltype_point_subject 标记年级与学科。 生成筛选字段、初始化参数和表单回显。
系统需要内置初始化 get_init_menu 返回初始化菜单,update_subject_knowledge_point 读取内置 JSON。 生成初始化弹窗、接口调用和完成提示。
配置需要可清空 update_reset_model 删除全部知识点并重置自增索引。 生成危险操作确认、权限控制和验收用例。
前端需要树表展示 GetList 根节点默认 level=1,子节点通过 pcode 查询。 生成树表懒加载、hasChildren 标记和刷新策略。
权限需要可验收 初始化、清空、删除节点都属于高风险配置操作。 在 PDD 中列出角色、接口和误操作防护。

可以直接使用下面的Prompt进行模块功能的设计

text 复制代码
请 Codex 基于教育管理系统真实源码设计"知识点配置"模块。

模块定位:
知识点配置用于维护学段、学科和知识点层级,为题库、考试分析和教学内容推荐提供统一知识体系。

源码范围:
server_backend/modules/Config/models.py
server_backend/modules/Config/views_app/KnowledgePoint.py
server_vue3/src/views/modules/Config/KnowledgePoint/index.vue
server_vue3/src/views/modules/Config/KnowledgePoint/api.ts
server_vue3/src/views/modules/Config/KnowledgePoint/crud.tsx

核心字段:
name:知识点名称
code:知识点编码,唯一索引
level:知识点层级
type_point_subject:知识点学科
type_point_level:知识点年级
enable:是否启用
pcode:父级知识点编码

接口范围:
GET/POST/DELETE /api/Config/KnowledgePoint/
GET /api/Config/KnowledgePoint/get_init_menu/
POST /api/Config/KnowledgePoint/update_subject_knowledge_point/
POST /api/Config/KnowledgePoint/update_reset_model/

设计要求:
1. 输出页面结构、数据模型、接口规则、权限边界和验收标准。
2. 说明 code、pcode、level 如何构成树形结构。
3. 说明 get_init_menu 如何标记学段是否已初始化。
4. 说明 update_subject_knowledge_point 如何按 level 从内置 JSON 生成知识点树。
5. 说明 update_reset_model 的危险操作边界。
6. 只允许设计源码中存在的数据联动和知识点初始化能力。

后端设计

后端设计重点不是堆新增、编辑、删除接口,而是保证知识点树的编码、层级和初始化口径稳定。KnowledgePoint 模型包含 namecodeleveltype_point_subjecttype_point_levelenablepcode。其中 code 唯一且建索引,pcode 指向自身 code 字段,用于形成树形结构。

KnowledgePointViewSet 使用 PCodeTreeSerializer.for_model(KnowledgePoint, read_only_fields=["number", "name"]) 处理树形序列化,CustomModelInFilternametype_point_subjecttype_point_level 提供模糊查询。get_init_menu 会遍历 dvadmin.data.knowledge_point.menu_data,按 type_point_levellevel=1 判断某个学段是否已经初始化。update_subject_knowledge_point 会按 level 找到内置 JSON 目录,读取每个学科文件并递归生成知识点编码。update_reset_model 会删除全部数据并按数据库类型重置自增索引。

后端设计项 设计重点 Codex 生成方向
树形模型 code 唯一,pcode 指向自身,level 表示层级。 生成父子节点校验、树形序列化和懒加载查询。
学段学科 type_point_level 标记学段,type_point_subject 标记学科。 生成筛选、初始化参数和数据隔离。
初始化菜单 get_init_menumenu_data 上追加 initialized 标记。 生成初始化弹窗数据源和状态回显。
初始化写入 update_subject_knowledge_point 从内置 JSON 递归写入知识点。 生成文件读取、编码生成、事务和异常响应。
清空重置 update_reset_model 删除数据并重置自增索引。 生成危险确认、权限控制和数据库差异处理。
路由接口 接口前缀为 /api/Config/KnowledgePoint/ 保持前后端 API 名称和方法一致。

可以直接使用下面的Prompt进行后端代码的设计

text 复制代码
请 Codex 按"知识点配置"业务从零设计或补齐后端代码。

后端源码范围:
server_backend/modules/Config/models.py
server_backend/modules/Config/views_app/KnowledgePoint.py

必须遵守的现有结构:
1. 模型为 KnowledgePoint,字段包含 name、code、level、type_point_subject、type_point_level、enable、pcode。
2. code 是唯一编码,pcode 通过 to_field=code 指向父级。
3. ViewSet 为 KnowledgePointViewSet,序列化使用 PCodeTreeSerializer。
4. 接口前缀为 /api/Config/KnowledgePoint/。

需要实现或校准:
1. 列表查询支持根节点默认 level=1,子节点按 pcode 查询。
2. get_init_menu 返回内置知识点菜单,并标记 initialized。
3. update_subject_knowledge_point 按 level 读取内置 JSON,递归生成知识点。
4. update_reset_model 清空数据并按数据库类型重置自增索引。
5. 删除、初始化和清空接口要有权限边界和异常响应。

输出涉及文件、模型字段、接口返回结构、权限规则、异常响应和测试建议。

前端设计

前端设计重点是让配置人员在树表中维护知识点,而不是把所有节点平铺到列表。server_vue3/src/views/modules/Config/KnowledgePoint/index.vue 使用 fs-crud,并在 actionbar-left 放入 InitKnowledgePointDialog。页面挂载后执行 crudExpose.doRefresh(),初始化完成后通过 @refresh 刷新树表。

api.ts 中的 GetList 会在没有 pcodenamecode 时默认补 level=1,并将后端返回的 pcode_count 转成 hasChildren,服务树表懒加载。resetModel 调用 update_reset_modelinitMenu 调用 get_init_menuinitSubjectBook 调用 update_subject_knowledge_point,这些接口共同支撑初始化弹窗和树表回显。

前端设计项 设计重点 Codex 生成方向
页面容器 index.vue 使用 fs-pagefs-crudInitKnowledgePointDialog 生成初始化入口、刷新事件和挂载刷新。
树表查询 GetList 根节点默认 level=1,子节点按 pcode 查询。 生成懒加载、hasChildren 标记和搜索条件处理。
初始化弹窗 initMenu 获取学段初始化菜单,initSubjectBook 执行初始化。 生成学段选择、初始化状态、提交 loading 和完成刷新。
清空重置 resetModel 调用后端清空接口。 生成确认弹窗、危险提示和成功后刷新。
字段回显 namecodeleveltype_point_subjecttype_point_levelenablepcode 生成表单字段、只读字段、启用状态和父级回显。

可以直接使用下面的Prompt进行前端代码的设计

text 复制代码
请 Codex 按"知识点配置"业务生成或补齐前端页面代码。

前端源码范围:
server_vue3/src/views/modules/Config/KnowledgePoint/index.vue
server_vue3/src/views/modules/Config/KnowledgePoint/api.ts
server_vue3/src/views/modules/Config/KnowledgePoint/crud.tsx

页面现状:
1. index.vue 使用 fs-page 和 fs-crud。
2. actionbar-left 放置 InitKnowledgePointDialog。
3. GetList 在根节点查询时默认补 level=1。
4. GetList 将 pcode_count 转成 hasChildren。
5. initMenu 调用 get_init_menu。
6. initSubjectBook 调用 update_subject_knowledge_point。
7. resetModel 调用 update_reset_model。

需要生成或修正:
1. 保持树表懒加载和根节点默认查询。
2. 初始化弹窗展示学段初始化状态,提交后刷新列表。
3. 清空重置必须二次确认。
4. 删除节点后刷新父级节点。
5. 字段回显要保持 code、pcode、level 的树形语义。
6. 不生成源码中不存在的上传、审批或统计入口。

输出页面结构、API 封装、树表配置、初始化弹窗、清空重置、异常提示和验收步骤。

扩展功能

知识点配置的扩展能力集中在数据联动和知识点初始化。它超出普通 CRUD 的地方,是节点层级、父子编码、学段学科和初始化状态需要同时维护,并且初始化会从内置目录批量生成树形数据。

扩展功能 主要用途 落地重点
数据联动 codepcodelevel、学段、学科和树表懒加载串成稳定数据流。 前端 hasChildren、后端 pcode_count 和父子编码必须一致。
知识点初始化 按学段读取内置 JSON 目录,生成学科知识点树。 初始化前要校验学段,初始化后要刷新菜单状态和树表。

数据联动

数据联动围绕树形结构展开。前端首次查询根节点时传 level=1,展开节点时传 pcode,后端通过 PCodeTreeSerializer 返回子节点数量,前端转成 hasChildrencodepcodelevel 不只是展示字段,它们决定节点能否被正确展开和保存。
结果阶段
处理阶段
输入阶段
根节点
父级编码
搜索条件
生成参数
查询接口
转换标记
树表展示
节点展开
表单回显

交给 Codex 生成时,不能把树形字段当普通文本处理。新增节点需要知道父级 pcode,删除节点要考虑子节点影响,搜索时要避免强行带 level=1 导致查不到下级节点。

可以直接使用下面的Prompt进行数据联动设计

text 复制代码
请 Codex 基于真实源码补齐"知识点配置"的数据联动能力。

源码范围:
server_backend/modules/Config/models.py
server_backend/modules/Config/views_app/KnowledgePoint.py
server_vue3/src/views/modules/Config/KnowledgePoint/index.vue
server_vue3/src/views/modules/Config/KnowledgePoint/api.ts
server_vue3/src/views/modules/Config/KnowledgePoint/crud.tsx

联动对象:
code、pcode、level、type_point_subject、type_point_level、enable、pcode_count、hasChildren

联动要求:
1. 根节点查询默认 level=1。
2. 子节点展开按 pcode 查询。
3. 后端 pcode_count 要转换为前端 hasChildren。
4. 新增和编辑要保持 code、pcode、level 的树形语义。
5. 搜索 name 或 code 时不要错误覆盖查询条件。
6. 删除和清空后刷新树表。

输出接口设计、前端交互、字段转换、异常处理、权限约束和验收清单。

知识点初始化

知识点初始化用于把内置 JSON 目录转换成系统知识点数据。后端按 level 映射年级代码,再从 dvadmin.data.dictionary.GeneralSubject 反查学科编码,组合生成每个知识点的 code。初始化前会清理当前学段旧数据,再递归写入新节点。
结果阶段
处理阶段
输入阶段
选择学段
内置目录
校验学段
读取JSON
递归写入
初始化完成
刷新树表

Codex 生成时要处理边界:不支持的 level 要返回错误,内置目录不存在要返回错误,JSON 读取失败不能中断整个接口到 500。初始化完成后,前端需要刷新树表和初始化菜单状态。

可以直接使用下面的Prompt进行知识点初始化设计

text 复制代码
请 Codex 基于真实源码补齐"知识点配置"的知识点初始化能力。

后端接口:
GET /api/Config/KnowledgePoint/get_init_menu/
POST /api/Config/KnowledgePoint/update_subject_knowledge_point/
POST /api/Config/KnowledgePoint/update_reset_model/

字段范围:
level、type_point_level、type_point_subject、name、code、pcode、enable

设计要求:
1. get_init_menu 返回学段菜单,并标记 initialized。
2. update_subject_knowledge_point 按 level 读取内置 JSON 目录。
3. 初始化时先清理当前学段旧数据,再递归写入新节点。
4. code 要由学段码、学科码和节点序号组合生成。
5. update_reset_model 要二次确认并限制权限。
6. 前端初始化成功后刷新菜单状态和树表。

输出后端流程、前端交互、异常边界和验收用例。

Codex开发标准

使用 Codex 开发知识点配置模块时,不能直接让它生成一个平铺表格。PDD、SOP、接口权限规则和验收标准需要同时约束树形模型、初始化接口、前端懒加载和危险操作。
验收交付
Codex开发
模块设计
输入约束
需求边界
PDD设计
SOP目录
接口权限
后端设计
前端设计
初始化设计
读取上下文
生成后端
生成前端
联动补齐
功能自检
PDD验收
问题修复
模块交付

SOP 标准

SOP 用于约束代码目录、文件职责和开发顺序。知识点配置模块需要同时维护模型、ViewSet、前端 API、树表页面、初始化弹窗和模块文档。

text 复制代码
docs/modules/知识点配置/
├── pdd.md
├── api.md
├── test-cases.md
└── codex-sop.md

server_backend/modules/Config/
├── models.py
└── views_app/
    └── KnowledgePoint.py

server_vue3/src/views/modules/Config/KnowledgePoint/
├── index.vue
├── api.ts
├── crud.tsx
└── components/
    └── InitKnowledgePointDialog.vue
开发阶段 Codex 执行目标 输出结果
模块设计 读取 KnowledgePointKnowledgePointViewSet、前端 api.ts/crud.tsx/index.vue 输出字段、接口、树形结构和初始化边界。
文档规划 建立 PDD、API、测试和 SOP 文档。 形成 pdd.mdapi.mdtest-cases.mdcodex-sop.md
后端实现 校准树形模型、列表查询、初始化菜单、初始化写入和清空重置。 后端接口可支撑树表和初始化。
前端实现 校准树表懒加载、初始化弹窗、清空确认和保存回显。 页面可维护知识点树。
数据联动 打通 codepcodelevelpcode_counthasChildren 前后端树形口径一致。
验收修复 按 PDD 检查接口、权限、初始化、清空和异常。 输出验收结果与需修复文件位置。

可以直接使用下面的Prompt进行SOP撰写

text 复制代码
请 Codex 按教育管理系统模块开发 SOP,从零实现或补齐"知识点配置"模块。

执行要求:
1. 先输出目录结构,不要直接写代码。
2. 先生成 docs/modules/知识点配置/pdd.md、api.md、test-cases.md 和 codex-sop.md。
3. 文档确认模块边界后,再根据文档生成或修正项目代码。
4. 后端范围限定在 Config/models.py 和 Config/views_app/KnowledgePoint.py。
5. 前端范围限定在 Config/KnowledgePoint/index.vue、api.ts、crud.tsx 和初始化弹窗。
6. 后端需要覆盖树形模型、列表查询、get_init_menu、update_subject_knowledge_point、update_reset_model。
7. 前端需要覆盖树表懒加载、初始化入口、清空确认、字段回显和保存刷新。
8. 不生成源码中不存在的扩展能力。

输出目录结构、开发阶段表、后端任务清单、前端任务清单、数据联动清单和验收修复清单。

PDD 标准

PDD 是模块设计与验收文档,用来约束 Codex 输出是否符合真实业务。知识点配置模块的 PDD 要把树形字段、初始化接口、清空重置、前端懒加载和权限边界写成可验证条目。

验收维度 验收标准 需要检查的文件
业务目标 模块能维护学段、学科和知识点层级,为题库与分析提供统一口径。 pdd.mdmodels.pyKnowledgePoint.py
页面结构 页面包含树表、初始化入口、清空确认、节点新增编辑删除。 index.vuecrud.tsx
数据模型 KnowledgePoint 字段覆盖 namecodeleveltype_point_subjecttype_point_levelenablepcode models.py
接口规则 列表、详情、新增、删除、初始化菜单、初始化写入、清空重置可用。 KnowledgePoint.pyapi.tsapi.md
权限控制 初始化、清空、删除节点需要明确权限和误操作防护。 KnowledgePoint.pytest-cases.md
数据联动 codepcodelevelpcode_counthasChildren 前后端一致。 KnowledgePoint.pyapi.tscrud.tsx
知识点初始化 内置 JSON 初始化能按学段生成知识点树,并处理错误。 KnowledgePoint.pyInitKnowledgePointDialog.vue
测试用例 覆盖根节点查询、子节点展开、初始化成功、无效学段、清空重置、删除节点。 test-cases.md

可以直接使用下面的Prompt进行PDD 验收

text 复制代码
请 Codex 根据 docs/modules/知识点配置/pdd.md 对"知识点配置"模块进行验收。

验收范围:
server_backend/modules/Config/models.py
server_backend/modules/Config/views_app/KnowledgePoint.py
server_vue3/src/views/modules/Config/KnowledgePoint/index.vue
server_vue3/src/views/modules/Config/KnowledgePoint/api.ts
server_vue3/src/views/modules/Config/KnowledgePoint/crud.tsx
server_vue3/src/views/modules/Config/KnowledgePoint/components/InitKnowledgePointDialog.vue
docs/modules/知识点配置/api.md
docs/modules/知识点配置/test-cases.md

验收维度:
1. 业务目标:是否能维护知识点层级。
2. 页面结构:是否包含树表、初始化入口和清空确认。
3. 数据模型:KnowledgePoint 字段和树形关系是否正确。
4. 接口规则:列表、初始化、清空重置是否可用。
5. 权限控制:危险操作是否有权限与确认。
6. 数据联动:pcode_count、hasChildren、pcode、level 是否一致。
7. 知识点初始化:内置 JSON 初始化是否可验收。
8. 测试用例:是否覆盖成功路径和失败路径。

输出验收结果表,标记通过、未通过和需要修复的文件位置。不要只给结论,需要指出具体问题、影响范围和修复建议。

总结

知识点配置不是普通字典表,而是教育管理系统中支撑题库、考试分析和教学资源关联的知识体系闭环。它通过 codepcodelevel 维护层级,通过学段和学科字段保证业务口径统一。

用 Codex 开发该模块时,PDD 负责定义树形结构和验收标准,SOP 负责约束目录结构和开发顺序,Prompt 负责把模型、接口、页面、权限、数据联动和初始化能力拆成分阶段任务。这样生成的代码更容易支撑真实教学与考试业务。

相关推荐
牧子川2 小时前
009-Transformer-Architecture
人工智能·深度学习·transformer
covco3 小时前
矩阵管理系统指南:拆解星链引擎的架构设计与全链路落地实践
大数据·人工智能·矩阵
沪漂阿龙3 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
lifewange3 小时前
AI编写测试用例工具介绍
人工智能·测试用例
陕西字符3 小时前
2026 西安 豆包获客优化技术深度解析:企来客科技 AI 全域获客系统测评
大数据·人工智能
掘金安东尼3 小时前
GGUF、GPTQ、AWQ、EXL2、MLX、VMLX...运行大模型,为什么会有这么多格式?
人工智能
新知图书3 小时前
市场分析报告自动化生成(使用千问)
人工智能·ai助手·千问·高效办公
无心水3 小时前
【Hermes:安全、权限与生产环境】38、Hermes Agent 安全四层纵深:最小权限原则从理论到落地的完全指南
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho
旦莫3 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
dfsj660113 小时前
第四章:深度学习革命
人工智能·深度学习