news 2026/4/15 16:37:07

将班上一系列同学的考试成绩一键转换成柱状图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
将班上一系列同学的考试成绩一键转换成柱状图

成都地区的中考内卷程度是全国出了名的。孩子升上初中后,周考和月考增加,很多家长每次考完试后,都关注自己孩子在班上优生中的成绩排名。

老师把成绩单发布到群之后,假设家长拿到的是这样的文本数据:

title:英语单元过关单 郝宇:80 汪子熙:90 赵轩:80 王程:90 余星:93 张宇:89

家长希望根据上面的数据自动生成一张柱状图,X 轴是学生姓名,Y 轴是学生成绩。

在过去这个需求可以轻易在 Excel 里实现,不过需要若干次鼠标的点击。

AI 工具普及之后,我们当然也可以把上面的数据,发给大模型,然后编写一些提示词,让大模型生成柱状图。

这种方式理论上可行,但是存在两个弊端:

  • 每次使用都需要编写提示词,浪费时间
  • 更大的问题是,大语言模型完成这种柱状图生成任务时仍然存在幻觉,会出现生成的图表数据紊乱的情况

更高效准确的做法当然是使用扣子工作流。

笔者已经开发了一个这样的工作流,源代码下载链接:

使用方法也很简单,输入数据:

title:英语单元过关单 郝宇:80 汪子熙:90 赵轩:80 王程:90 余星:93 张宇:89

点击试运行按钮:

最后生成的柱状图图片链接如下:

下面是这个工作流详细的拆解。

首先是信息提取节点,这个节点的职责,是将用户输入的以换行符号分隔的每个学生的姓名和成绩做处理,让它们成为柱状图生成节点所能接收的数据输入格式。

这个节点不需要写代码实现这些格式处理,用大模型来处理就足够了。大模型类型还是选择豆包·1.5

系统提示词:

用户输入的内容为字符串,每一行都是形如A:B的字符串,通过换行符号区分行与行。 第一行的A固定为 title,B为 title 的值。 从第二行开始,每一行的A代表学生姓名,B代表学生成绩。 请你将第一行的 title 值提取出来,存储到输出变量 title 中。 从第二行开始的学生姓名,按照顺序插入到输出变量 names 中。 输出变量 names 的初始值是 "[]". 假设第一个插入的学生姓名是 A,插入之后,names 的值变成了 "["A"]", 再插入第二个值 B,names 的值就是 "["A", "B"]", 以此类推。 从第二行开始的学生成绩,按照顺序插入到输出变量 scores 中。 输出变量 scores 的初始值是 "[]". 假设第一个插入的学生成绩是 89,插入之后,scores 的值变成了 "[89]", 再插入第二个值 100,scores 的值就是 "[89, 100]", 以此类推。

用户提示词:

定义三个输出变量:

  • title:存放柱状图图片
  • names:字符串,存放所有的学生姓名,像这种格式:[“张三”,“李三”,“王二”]。为什么要这种格式?因为后面的柱状图生成节点需要这种格式。
  • scores:字符串,存放所有的学生成绩,像这种格式:[98,100,99]。

看一个输出的例子:

接下来我们选择添加节点->插件

搜索栏里输入关键字图表,然后搜索结果里看到图表大师这个插件:

单击,选择下面的子类bar_charts,再点击添加即可。

点击查看示例,可以看到这个插件接收的输入参数的格式

因为我们第一个信息提取的节点,只提取了全部的学生姓名和成绩,格式和这个柱状图生成节点需要的输入格式有差异,因此我们再使用一个代码节点,进行格式转换操作。

新建一个代码节点,定义namesscores两个输入参数,绑定到前一个名叫信息提取的大模型节点的同名输出参数上。

这个代码节点的输出参数定义,其实就是比照着柱状图生成节点需要的输入参数的格式来定的:

代码:

// 在这里,您可以通过 'params' 获取节点中的输入变量,并通过 'ret' 输出结果// 'params' 已经被正确地注入到环境中// 下面是一个示例,获取节点输入中参数名为'input'的值:// const input = params.input;// 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象:// const ret = { "name": '小明', "hobbies": ["看书", "旅游"] };asyncfunctionmain({params}:Args):Promise<Output>{// 构建输出对象constret={"data":params.scores,"legend":1,"xAxis":{"data":params.names,"name":"姓名","type":"category"},"yAxis":{// 输出一个Object"name":"分数","type":"value"},};returnret;}

下面是这个代码节点的一个输出例子:

图表生成

最后使用刚刚添加的图表生成的节点,完成柱状图的生成。这个节点的输入参数我们不用手动定义,直接将它们逐一绑定到前一个代码节点的同名输出参数即可。

该节点的输出参数是生成柱状图的 url.

至此这个工作流就拆解完毕了,希望对大家有用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 16:33:59

【MySQL】node.js 如何判断连接池是否正确连接上了?

在使用 mysql2/promise 的 createPool 时&#xff0c;仅仅调用 createPool 是不会立即去连接数据库的。它是“懒加载”的&#xff0c;只有在执行第一次查询或者手动请求连接时&#xff0c;才会真正尝试建立连接。 要判断连接是否正确以及数据库是否存在&#xff0c;推荐以下两种…

作者头像 李华
网站建设 2026/4/8 15:28:58

模型微调自动化:基于Llama Factory的超参数搜索与最佳配置推荐

模型微调自动化&#xff1a;基于Llama Factory的超参数搜索与最佳配置推荐 在算法团队的实际工作中&#xff0c;每次接手新任务时手动网格搜索超参数不仅耗时耗力&#xff0c;还会消耗大量计算资源。本文将介绍如何利用Llama Factory框架实现超参数自动搜索与最佳配置推荐&…

作者头像 李华
网站建设 2026/4/12 1:04:44

CTF从入门到上头

CTF从入门到上头 声明&#xff1a;仅对学习介绍引导&#xff0c;之后的学习之路可能会道阻且长。 各位安全圈的小伙伴们&#xff0c;大家好&#xff01; 还记得我第一次参加CTF&#xff08;Capture The Flag&#xff09;时&#xff0c;面对满屏的代码和不知所云的题目描述&a…

作者头像 李华
网站建设 2026/4/4 19:41:31

树莓派视频项目全攻略:从播放到监控一机搞定

树莓派在视频领域的应用已经非常广泛&#xff0c;从简单的媒体播放到复杂的视频处理系统&#xff0c;这款小巧的单板计算机都能胜任。无论是搭建家庭影院、创建视频监控系统&#xff0c;还是进行视频流媒体传输&#xff0c;树莓派都能以低成本实现高效能。对于想要探索视频技术…

作者头像 李华
网站建设 2026/4/8 22:25:50

从0到1:用快马打造企业级媒体内容生产系统

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个企业级媒体内容管理系统&#xff0c;功能包括&#xff1a;1. 多用户协作编辑界面 2. 自动内容审核模块 3. 智能标签和分类系统 4. 跨平台发布到微信、微博、抖音等 5. 数据…

作者头像 李华
网站建设 2026/4/4 19:41:27

如何用AI快速搭建Kafka开发环境?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个自动化脚本&#xff0c;能够自动下载最新版本的Kafka&#xff0c;解压并配置必要的环境变量。脚本应包含启动Zookeeper和Kafka服务器的命令&#xff0c;并验证服务是否正常…

作者头像 李华