使用 coze 做一个智能报表助手

向量数据库大模型云原生可观测

点击上方👆蓝字关注我们!

picture.image

背景

现在市面上有不少报表工具,但对于普通人来说上手都比较难,要了解很多知识才能勉强使用。我做的这款 智能报表助手 Bot,只需上传 excel 文件就能自动生成用户可能需要的报表 。如果自动生成的推荐报表不是用户想要的,可以自己输入想要的报表,就会为你自动生成。

Bot 体验地址: https://www.coze.cn/store/bot/7388406006914727976?bid=6dccmqrok7g1v&panel=1

功能演示

上传 excel 文件

先准备一个 excel 文件:

picture.image

上传 excel 文件:

picture.image

上传完 excel 文件后,解析数据,生成报表:

picture.image

picture.image

picture.image

点击查看大图会打开一个可以交互的网页:

picture.image

如果不想要哪个图表了,可以输入图表标题删除:

picture.image

可以查看当前报表,删除一个后,只剩两个了:

picture.image

添加一个图表分析:

picture.image

查看报表,此时又变成 3 个了:

picture.image

实现过程

人设与回复逻辑

picture.image

快捷指令

快捷指令就是下面这些按钮,可以用来提升用户体验,比让用户输入文字好多了。

picture.image

快捷指令的配置:

picture.image

工作流

这个 bot 的核心就是工作流了,上面 4 个功能就对应 4 个工作流,下面为大家一一展示。

picture.image

解析 excel 数据并生成报表

用户上传 excel 文件后,在工作流中可以拿到 excel 文件连接,然后写一个插件通过 url 下载当前 excel 文件,再读取 excel 文件里的数据。

开始我打算把解析出来的 excel 数据以单元格的形式存到 bot 数据库,然后使用大模型根据单元格数据和用户提问生成答案。但是经过多次实验,发现大模型的计算效果不佳,经常出现计算错的情况。比如一张学生成绩表,用户想求某个学科的平均数,大模型可以把当前学科所有分数精准的提取出来,最后一步计算的时候,经常会出现错误。

然后就尝试了另外一套方案, 把 excel 转换为数据表,使用大模型把用户问题转换为 SQL,发现这样做生成的 SQL 准确率非常高,基本都能得到想要的结果

coze 里不能动态创建表,所以我自己写了一个服务,在工作流里调用这个服务,根据 excel 的 url 动态创建表,同时把 excel 数据插入到表中,最后把服务返回的动态表名存到 coze 数据库中。这一步是为了后续用户提问时,根据表名动态执行 SQL,拿到数据。

最后再根据数据库表字段信息,使用大模型为用户生成 3 个推荐报表,报表信息中包含标题、描述、查询 SQL。这里为了防止一次查询出来的数据过多,传给大模型的时候出现崩溃,所以限制数据 100 条。

picture.image

拿到 SQL 后,使用插件动态执行 SQL 查询数据,再根据标题和数据使用大模型转换为绘制 echarts 图表的参数。

picture.image

绘制图表,官方有一个插件,但是这个插件生成的图表有点模糊,我就自己写了一个插件,生成的图表图片清晰度比较高,echarts 绘制图表时可以设置缩放,我给图片放大了三倍,清晰度就变高了很多。

picture.image

查看大图那里把多张图片合成一张,本来打算使用图像流做的,但是图像流不支持合成图片,只支持叠加图片,所以我还是自己写了一个插件,支持把多张图片合并成一张大图。

picture.image

图表生成成功之后,需要把图表连接存到数据库中,为后面查看报表做准备。下面是 coze 中存放图表信息的数据库:

picture.image

做这个工作流的时候有 2 个细节,和大家详细分享一下:

  • 大模型生成的 SQL 有时候会出错,当我去执行错误 SQL 的时候可以拿到报错信息,把报错信息和 SQL 一起传给大模型,让大模型修复后重新执行,这样可以保证 SQL 都能正常执行。
  • 大模型生成 json 有时候不是标准的,也可以使用上面的方案让大模型帮忙修复。

查看报表

先从数据库中查询前面存放的图表连接,然后再调用合并图片的插件,把几张图表合并成一张大图。

删除图表

根据用户输入的标题从数据库中删除当前图表。

添加图表

这个其实和前面的解析 excel 数据生成报表流程差不多,只是前面是根据大模型生成 3 个,这个是用户已经输入了标题,只需要根据标题生成查询 SQL 就行了,后面步骤是一样的。

后续计划

目前只支持 excel 文件,后续打算支持数据库连接和各平台的云文档。

原文链接: https://developer.volcengine.com/articles/7388464144309026853

picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动客户端性能优化最佳实践
在用户日益增长、需求不断迭代的背景下,如何保证 APP 发布的稳定性和用户良好的使用体验?本次分享将结合字节跳动内部应用的实践案例,介绍应用性能优化的更多方向,以及 APM 团队对应用性能监控建设的探索和思考。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论