该项目旨在开发一个基于知识图谱的软件项目管理学习系统,帮助用户(学生和教师)搜索和学习相关知识点,查看知识点关联的习题,生成个性化试卷并利用大模型实现自动批改,同时提供基于大模型的问答功能,帮助用户解决学习中的疑问。
- 学生:查阅和学习软件项目管理知识,并通过习题和试卷自我评估。
- 教师:管理知识点内容,生成试卷,并对试卷进行二次批改和评估。
系统支持两类用户角色:学生和教师。
- 学生:可以搜索知识点、查看习题、生成试卷并提交答案进行批改,同时可以向大模型提问获取解答。
- 教师:可以管理知识点、关联习题,生成试卷,并对试卷进行人工批改或复核。
-
需求描述:用户可以通过模糊搜索的方式查找知识点,并查看与之相关的详细内容、关联知识点、前置和后置知识点等信息。
-
功能需求:
-
接口设计:
- GET /api/knowledge/search:根据关键词模糊搜索知识点。
- 参数:
keyword
(String) - 搜索关键词 - 返回:符合条件的知识点列表,包含知识点ID、名称、简介等。
- 参数:
- GET /api/knowledge/{id}:获取知识点的详细信息。
- 参数:
id
(String) - 知识点的ID - 返回:知识点的详细信息,包括前置知识点、后置知识点、关联知识点、标签、认知维度、分类教学目标、详细内容等。
- 参数:
- GET /api/knowledge/search:根据关键词模糊搜索知识点。
-
需求描述:在知识点的详细信息页面,展示该知识点的关联习题,包含题目内容和标准答案。
-
功能需求:
-
接口设计:
- GET /api/knowledge/{id}/exercises:获取知识点对应的习题。
- 参数:
id
(String) - 知识点的ID - 返回:习题列表,包括每个习题的题目内容和标准答案。
- 参数:
- GET /api/knowledge/{id}/exercises:获取知识点对应的习题。
-
需求描述:用户可以根据选定的多个知识点生成试卷,包含所选知识点的习题,供用户进行测试。
-
功能需求:
-
接口设计:
- POST /api/exam/generate:生成包含多个知识点的试卷。
- 参数:
knowledgeIds
(List) - 要包含的知识点ID列表 - 返回:生成的试卷内容,包括题目列表
- 参数:
- GET /api/exam/{examId}:查看生成的试卷内容。
- 参数:
examId
(String) - 试卷ID - 返回:试卷内容,包括题目列表
- 参数:
- POST /api/exam/generate:生成包含多个知识点的试卷。
- 需求描述:用户完成试卷后上传答案,系统利用大模型自动批改试卷并提供分数和反馈。同时,教师可以对试卷进行二次批改或复核。
- 功能需求:
- 学生在试卷批改页面提交答案,系统调用大模型自动批改试卷并返回分数和反馈。
- 教师可以查看学生试卷的自动批改结果,并对其进行二次批改或复核,以提高批改的准确性。
- 接口设计:
- POST /api/exam/{examId}/submit:提交试卷答案并批改。
- 参数:
examId
(String) - 试卷IDanswers
(Map<String, String>) - 用户提交的答案(题目ID及其对应答案)
- 返回:批改结果,包括每道题的得分、反馈、总分等
- 参数:
- POST /api/exam/grade:利用大模型批改试卷(后台调用)。
- 参数:
examId
(String) - 试卷IDanswers
(Map<String, String>) - 用户提交的答案
- 返回:大模型批改的结果,包括每题的得分和反馈
- 参数:
- POST /api/exam/{examId}/review:教师对试卷进行二次批改或复核。
- 参数:
examId
(String) - 试卷IDfeedback
(Map<String, String>) - 教师的批改意见
- 返回:最终批改结果,包括教师的反馈。
- 参数:
- POST /api/exam/{examId}/submit:提交试卷答案并批改。
- 需求描述:用户可以在问答模块向大模型提问,获取与知识点内容相关的答案。
- 功能需求:
- 用户在问答页面输入问题,系统将问题提交给大模型并显示大模型返回的答案。
- 接口设计:
- POST /api/qa/ask:用户提问,大模型生成答案。
- 参数:
question
(String) - 用户的提问 - 返回:大模型生成的答案
- 参数:
- POST /api/qa/ask:用户提问,大模型生成答案。
- 元素:搜索框、搜索按钮、知识点列表。
- 操作:用户输入关键词并点击搜索,系统展示匹配的知识点列表。
- UI:知识点列表展示每个知识点的名称、关联知识点、简介等信息。点击某个知识点项进入详情页面。
- 元素:知识点详细内容、前置和后置知识点、习题列表。
- 操作:点击知识点进入详情页面,用户可以查看知识点的详细信息和关联的习题。
- UI:知识点内容包括标签、认知维度、教学目标和详细内容。习题列表展示题目和标准答案。
- 元素:知识点多选框、生成试卷按钮。
- 操作:用户选择多个知识点并点击生成试卷按钮,系统生成包含选定知识点的试卷。
- UI:试卷预览页面展示生成的试卷内容,包括题目列表,方便用户确认试卷内容。
- 元素:答案提交框、批改按钮、批改结果显示区域。
- 操作:学生完成试卷后提交答案,系统调用大模型自动批改并展示结果。教师可复核批改结果并进行二次批改。
- UI:批改结果显示每道题的得分和总分,同时提供教师批改的最终反馈。
- 元素:提问输入框、提问按钮、回答显示区域。
- 操作:用户输入问题并点击提问按钮,系统将问题提交至大模型并展示返回的答案。
- UI:每次提问后的回答显示在对话框中,提供清晰的问答界面。
- Theme:主题节点,例如“软件项目管理”。
- KnowledgePoint:知识点节点,包含一级、二级等层级知识点。
- Exercise:习题节点,每个知识点可关联多个习题。
- Theme:
id
、name
- KnowledgePoint:
id
、name
、level
、tags
、cognitive_dimension
、teaching_objective
、content
- Exercise:
id
、question
、answer
- CONTAINS:主题包含知识点,知识点包含子知识点。
- RELATED_TO:知识点之间的关联关系。