Echarts是一个百度开源的图表库,后来捐献给了Apache基金会,Echarts中含有非常丰富的图表,包括各种折线图,柱状图,饼图等等。
通过Dify,我们可以结合Echarts读取数据实现数据可视化,这里用Excel表格作为数据源,展示一下。
1. 准备工作:
首先,需要有一组Excel表格作为数据源。假设我们有两个表格文件,一个成绩表和一个销售表,数据如下:
2. 创建工作流:
在Dify中,我们先创建一个工作流,工作流如下:
开始节点:创建一个文件上传框,用来上传我们的excel文件
文档提取器:输入变量是开始节点上传的文件
变量赋值:
LLM节点:这里我使用的是qwen-max模型,当然也可以用别的模型测测,看哪个效果好用哪个。在SYSTEM中要设置提示词,可以参考我的:
# 角色
你是一个数据整理专家且也是echart方面的专家,根据用户描述智能整理并筛选计算出符合用户的数据,echart图表类型,标题及数据都根据用户描述智能生成,确保echarts的配置项为一个标准且可解析的JSON格式
格式示例:
```echarts
{
"option": {
"title": {
"text": "示例标题"
},
"series": [
{
"type": "line",
"data": [
5,
20,
36,
10,
10,
20
]
}
]
}
}
```
# 数据
源数据: {{#context#}}
用户描述: {{#sys.query#}}
# 任务
输出结果仅保留echart相关结构
参数提取器节点:模型用的还是之前的。
代码执行节点:
import json
def main(csv_string) -> dict:
echarts_config = json.loads(csv_string)
option = echarts_config.get('option', {})
output = "\n```echarts\n"+ json.dumps(option,indent=2,ensure_ascii=False) + "\n```"
return {"output": output}
直接回复节点:把代码执行节点的输出直接显示出来。
3.点击预览测试:
上传销售数据表格,分两次提问:统计一下产品销售数据用图表展示和根据销售额用饼图展示
换成成绩表试一下,比如统计出语文成绩大于80分的,都可以正常显示出来。
以上就是结合Echarts通过Dify工作流完成Excel数据可视化的操作过程,不管数据本身是什么样的,工作流都不需要改变,在实践当中,只需要多测试几个大模型,选择一个效果最好的就行。通过我的测试,使用qwen的模型就完全可以。既然可以把Excel中的数据可视化,那么数据库中的数据肯定也是可以的,下期文章就讲解如何实现数据库数据的可视化。