一、背景介绍

传统教学中,学生自测缺乏即时性、难定位薄弱点,教师需手动整理分析学情,效率低、反馈滞后。基于 AI 与数据库技术,在maxkb平台上,本方案构建 “学生自测” 与 “教师分析” 模块,打通全流程,解决上述痛点。

二、思路介绍

2.1. 学生知识点自测

1.学生输入 “开始出题” 触发流程,填写个人及知识点信息;

2.结合知识库与 AI 生成试卷,表单收集答案后,AI 自动批改打分;

3.生成 SQL 语句,将自测数据存入数据库。

2.2. 教师教学分析

1.教师提分析需求,AI 转化为 SQL,检索数据库中学生自测数据;

2.AI 分析数据,生成含得分、错题率及教学建议的报告,辅助教学决策。

三、工作流展示

3.1. 学生知识点自测

3.2 教师教学分析

四、详细操作步骤

4.1 学生知识点自测

①创建工具,名称填写:去除Markdown格式。添加输入参数:

参数名 数据类型 来源 input_str string 引用参数 split_str string 自定义 工具内容(Python):

import re

def main(input_str: str, split_str: str) -> str | None:

pattern = r'```'+split_str+'\s*\n(.*?)\n\s*```'

match = re.search(pattern, input_str, re.DOTALL)

if match:

# 提取内容,仅去除首尾的换行符(保留内部格式)

content = match.group(1).strip('\n')

return content

return None

②创建工具,名称填写:mysql查询。添加输入参数:

参数名 数据类型 来源 host string 自定义 user string 自定义 password string 自定义 database string 自定义 port int 自定义 query string 引用参数 工具内容(Python):

import pymysql from pymysql import Error def execute_mysql_query(host, user, password, database, port=3306, charset='utf8mb4', query=None): """ 连接 MySQL 数据库并执行查询 :param host: 数据库主机地址 :param user: 数据库用户名 :param password: 数据库密码 :param database: 数据库名称 :param port: 数据库端口(默认 3306) :param charset: 字符集(默认 'utf8mb4') :param query: 要执行的 SQL 查询 :return: 查询结果(如果是 SELECT 查询),否则返回 None """ connection = None try: # 连接数据库 connection = pymysql.connect( host=host, user=user, password=password, database=database, port=port, charset=charset ) print("Connected to MySQL database!") # 创建游标 with connection.cursor() as cursor: # 执行查询 cursor.execute(query) # 如果是 SELECT 查询,获取结果 if query.strip().upper().startswith("SELECT"): result = cursor.fetchall() print("Query executed successfully") return result else: # 如果是 INSERT、UPDATE、DELETE 等操作,提交事务 connection.commit() # 提交事务 print("Query executed successfully and transaction committed") return None except Error as e: print(f"The error '{e}' occurred") return None finally: # 关闭连接 if connection: connection.close() print("MySQL connection closed.") # # 示例用法 # if __name__ == "__main__": # # 数据库连接配置 # host = "<your ip>" # user = "root" # password = "<your password>" # database = "<your database>" # port = 3306 # charset = "utf8mb4" # # 1. SELECT 查询 # select_query = "SELECT * FROM user;" # select_result = execute_mysql_query(host, user, password, database, port, charset, select_query) # if select_result: # for row in select_result: # print(row) # # 2. INSERT 查询 # insert_query = "INSERT INTO your_table (name, age) VALUES ('Charlie', 28);" # execute_mysql_query(host, user, password, database, port, charset, insert_query)

③创建高级编排应用,在基本信息中更改开场白:

开场白示例:

您好,我是学生知识点自测小助手。

- 开始出题

④添加判断器,如果用户问题等于开始出题,则添加表单节点收集学生姓名与知识点,如果不等于则添加指定回复:如需学习请输入“开始出题”。

⑤在判断器的if条件添加表单收集节点,重命名为:学生姓名与知识点收集。在表单配置中添加参数:student_name,knowledge_point,class_num,course_name,course_teacher,stu_num共六个参数。显示名称填写各参数的中文名称,打开必填选项,组件类型选择文本框,默认值填写:请输入+各参数显示名称。

默认值示例:

请输入姓名

⑥在学生姓名与知识点收集节点后添加指定回复1节点,回复内容填写:开始出题。

⑦在指定回复1节点后添加知识库检索节点,选择已创建的知识库。参数设置:相似度高于0.100,引用分段数top为100,最多引用字符数10000。检索问题选择指定回复1的内容。

⑧在知识库检索节点后添加指定回复2节点,回复内容选择引用变量:全局变量的当前时间。

⑨在指定回复2节点后添加AI节点,重命名为:生成整张试卷。选择AI模型,系统角色填写:

你是一个擅长出题的考卷小助手。

提示词填写:

# 已知信息:

{{知识库检索.data}}

# 要求:

- 基于已知信息,出10道选择题

- 选择题此选择题具有ABCD选项,其中有一个选项为正确答案,其他三个选项为错误答案

- 按照“第一题”,“第二题”,“第三题”为题号,以此类推的顺序进行排序输出

- 题目编号加粗显示,题与题之间需要有明显的分割

- 只需要给出所有问题和选项,无需给出问题的答案

- 基于已知信息中的内容,出5道判断题

- 判断题包含一个正确选项和错误选项

- 接着选择题的顺序以此类推的顺序进行排序输出

- 题目编号加粗显示,题与题之间需要有明显的分割

- 只需要给出所有的判断题和选项,无需给出正确答案

- 基于已知信息中的内容,出3道问答题

- 接着判断题的题序,以此类推的顺序进行排序输出

- 题目编号加粗显示,题与题之间需要有明显的分割

- 只需要给出所有问题,无需给出问题的答案

历史聊天记录设置为0。

⑩在生成整张试卷节点之后添加三个表单收集节点。

1.收集学生选择题答案:

添加参数从one到ten,共十个参数,显示名称分别为第一题答案到第十题答案,打开必填选项,组件类型选择单行选项卡。选项值添加ABCD四个标签以及选项值。默认值选择A,取消勾选显示默认值。

2.收集学生判断题答案:

添加参数从one到five,共五个参数,显示名称分别为判断题第一题到判断题第五题,打开必填选项,组件类型选择单行选项卡。选项值添加正确、错误两个标签以及选项值。默认值选择正确,取消勾选显示默认值。

3.收集学生问答题答案:

添加参数从one到three,共三个参数,显示名称分别为问答题第一题到问答题第三题,打开必填选项,组件类型选择文本框。默认值填写:无,取消勾选显示默认值。

⑪在三个表单收集节点后添加AI节点,重命名为:批卷并打分。选择AI模型,系统角色填写:

你是一个擅长批卷的阅卷小助手。

提示词填写:

# 题目的批卷所需的答案的依据材料:

{{知识库检索.data}}

本次题目为:

{{生成整张试卷.answer}}

# 选择题部分:

- 学生选择题答案如下:

- {{收集学生选择题答案.one}}

- {{收集学生选择题答案.two}}

- {{收集学生选择题答案.three}}

- {{收集学生选择题答案.four}}

- {{收集学生选择题答案.five}}

- {{收集学生选择题答案.six}}

- {{收集学生选择题答案.seven}}

- {{收集学生选择题答案.eight}}

- {{收集学生选择题答案.nine}}

- {{收集学生选择题答案.ten}}

- 选择题总分:40分

# 判断题部分:

- 学生判断题答案如下:

- {{收集学生判断题答案.one}}

- {{收集学生判断题答案.two}}

- {{收集学生判断题答案.three}}

- {{收集学生判断题答案.four}}

- {{收集学生判断题答案.five}}

- 判断题总分:30分

# 问答题部分:

- 学生问答题答案如下:

- {{收集学生问答题答案.one}}

- {{收集学生问答题答案.two}}

- {{收集学生问答题答案.three}}

- 问答题总分:30分

# 批卷要求:

- 基于题目的批卷所需的答案的依据材料,给出学生选择题答案是否正确的结论,如果错误,给出判断依据以及正确的答案

- 基于题目的批卷所需的答案的依据材料,给出学生判断题答案是否正确的结论,如果错误,给出判断依据以及正确的答案

- 基于题目的批卷所需的答案的依据材料,给出学生问答题答案是否正确,还是部分正确的结论,如果错误,给出判断依据以及正确的答案

- 依次批改所有题目,给出最后学生此次选择题部分得分,判断题部分得分,问答题部分得分,以及此份考卷最后总分

- 基于学生的整体回答的答案和得分情况,给出相关学习的建议

⑫在批卷并打分节点后添加指定回复3节点,回复内容填写:阅卷完成,正在记录入库。

⑬在指定回复3节点后添加AI节点,重命名为:一句话总结学生自测情况。选择AI模型,系统角色填写:

你是一位博学多才的老师,擅长总结学生自测情况。

提示词填写:

# 已知信息:

{{批卷并打分.answer}}

# 要求

针对已知信息,输出关于学生知识点掌握情况的一句话总结,不需要任何其他内容。注意,是针对学生关于知识点的总结而不是针对其做题情况的总结。

⑭在一句话总结学生自测情况节点后添加AI节点,重命名为:生成SQL。选择AI模型,系统角色填写:

你是一名优秀的数据库工程师,擅长数据库相关操作,尤其擅长增删改查相关的SQL语句。

提示词填写:

# 已知信息:

学生学号stu_num为:{{学生姓名与知识点收集.stu_num}}

学生班号class_num为:{{学生姓名与知识点收集.class_num}}

学生姓名name为:{{学生姓名与知识点收集.student_name}}

本次学习的course_name为:{{学生姓名与知识点收集.course_name}}

本次学习的course_teacher为:{{学生姓名与知识点收集.course_teacher}}

本次学习的knowledge_point为:{{学生姓名与知识点收集.knowledge_point}}

本次学习的test_time为:{{指定回复3.answer}}

本次学习的question_record为{{生成整张试卷.answer}}

本次学习的marking_record为{{批卷并打分.answer}}

本次学习的summarize为{{一句话总结学生自测情况.answer}}

本次学习的score在mark_record的末尾,需要你自行提取出来

我的建表信息为

```sql

CREATE TABLE edu.interactions_record (

 stu_num BIGINT NOT NULL,

 name varchar(100) NOT NULL,

 class_num varchar(10) NOT NULL,

 course_name varchar(100) NOT NULL,

 course_teacher varchar(100) NOT NULL,

 knowledge_point varchar(100) NOT NULL,

 test_time TIMESTAMP NULL,

 question_record MEDIUMTEXT NULL,

 marking_record MEDIUMTEXT NULL,

 score INT NULL,

 summarize MEDIUMTEXT NULL,

 CONSTRAINT interactions_record_pk PRIMARY KEY (stu_num)

)

```

基于已知信息,生成一句SQL语句插入到我的数据库表中。

# 要求:

利用我给你的已知信息,生成可执行的SQL插入到数据库,将已知信息基于表格字段格式要求自行转换格式,其次要把对应字段的完整内容插入数据库中,除SQL语句以外不输出任何其他内容。下面是我给你的示例

# 示例:

```sql

INSERT INTO edu.interactions_record (

 stu_num,

 name,

 class_num,

 course_name,

 course_teacher,

 knowledge_point,

 test_time,

 question_record,

 marking_record,

 score,

 summarize

) VALUES (

 20250001,

 '张三',

 '大数据1902',

 '数学基础',

 '李老师',

 '代数方程',

 '2025-07-15 10:00:00',

 '选择题:1+1=?; 答案:2',

 '正确',

 100,

 '表现优秀,掌握扎实'

);

```

⑮在生成SQL节点后添加已经定义好的去除Markdown格式工具,input_str选择生成SQL节点的AI回答内容,split_str填写sql,不返回内容。

⑯在去除Markdown格式节点后添加已经定义好的mysql查询工具,host填写你要连接的数据库ip,user填写用户名,password填写密码,database填写数据库名称,port填写端口号,query选择去除Markdown格式节点的结果,不返回内容。

⑰最后在mysql查询节点后添加指定回复4节点,回复内容填写:入库成功!

4.2. 教师教学分析

①创建高级编排应用,在基本信息中更改应用描述和开场白:

描述示例:

教师通过该应用查询学生的学习情况。

开场白示例:

您好,我是教师教学分析小助手,您可以向我了解学生学习情况的相关问题。

- 张三的成绩如何?

②添加AI对话节点,重命名为:生成SQL。选择AI模型,系统角色填写:

你是一名数据库工程师,擅长增删改查相关的工作。

提示词填写:

# 已知信息:

我的建表信息为

```sql

CREATE TABLE edu.interactions_record (

 stu_num BIGINT NOT NULL,

 name varchar(100) NOT NULL,

 class_num varchar(10) NOT NULL,

 course_name varchar(100) NOT NULL,

 course_teacher varchar(100) NOT NULL,

 knowledge_point varchar(100) NOT NULL,

 test_time TIMESTAMP NULL,

 question_record MEDIUMTEXT NULL,

 marking_record MEDIUMTEXT NULL,

 score INT NULL,

 summarize MEDIUMTEXT NULL,

 CONSTRAINT interactions_record_pk PRIMARY KEY (stu_num)

)

```

course_name是指课程名称,knowledge_point是指知识点

# 用户问题

{{开始.question}}

# 要求

根据用户问题的自然语言生成查询SQL,除SQL语句以外不输出任何其他内容。如无特殊要求,一般不需要返回question_record和marking_record字段。下面是我给你的示例。

# 示例

```sql

SELECT name, course_name, score

FROM edu.interactions_record

WHERE knowledge_point='解析几何';

```

打开返回内容。

③在生成SQL节点后添加已经定义好的去除Markdown格式工具,input_str选择生成SQL节点的AI回答内容,split_str填写sql,不返回内容。

④在去除Markdown格式节点后添加已经定义好的mysql查询工具,host填写你要连接的数据库ip,user填写用户名,password填写密码,database填写数据库名称,port填写端口号,query选择去除Markdown格式节点的结果,不返回内容。

⑤在mysql查询节点后添加AI对话节点,选择AI模型,填写系统角色:

你是一名数据分析师,擅长对SQL查询的结果进行总结

填写提示词:

# 已知信息:

{{mysql查询.result}}

本次查询的sql语句为{{生成SQL.answer}}

用户问题是{{开始.question}}

# 要求

首先对查询结果进行完整的展示,展示效果需要优化,是阅读者可以方便的浏览各项信息。其次根据查询结果,输出你对查询信息的总结并回答用户问题。

打开返回内容。

五、演示效果

5.1. 学生知识点自测

5.2. 教师教学分析

六、总结

本方案通过 “学生知识点自测” 与 “教师教学分析” 两大模块的协同设计,有效解决了传统教学中 “学生自测低效” 与 “教师分析耗时” 的核心痛点,形成了 “自测 - 批改 - 存数 - 分析” 的教学数据闭环。

 参考:https://www.bilibili.com/opus/1111687920231645184

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐