【Dify】结合Echarts实现数据可视化-读取Excel

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中的数据可视化,那么数据库中的数据肯定也是可以的,下期文章就讲解如何实现数据库数据的可视化。

原文链接:,转发请注明来源!