本篇博客主要记录使用Dify搭建工作流,实现数据可视化的工作流助手。
1、环境准备
电脑系统:Windows
Dify版本:1.13.2
Docker:Docker Desktop(建议以管理员权限启动)
2、常用命令
bash
# 启动
docker compose up -d
# 停止
docker compose down -v
# 重启某个应用
docker compose restart ***
# 服务运行情况
docker compose ps
3、数据集
4、实现流程
在dify中搭建工作流,流程如下:

用户输入处,新增变量file,用于上传文件。

文档提取器用于读取上传的文件内容。

LLM用于将读取的Excel文件转换为csv格式,用于后续的代码执行。

代码执行用于将输出的csv数据整理并绘制成ECharts图形并输出。

python
import csv
import json
from collections import defaultdict
def main(csv_string):
"""
读取CSV数据,按【地区】汇总销售额,
生成ECharts柱状图配置
"""
# 解析 CSV 数据
lines = csv_string.strip().split('\n')
reader = csv.reader(lines)
headers = next(reader)
data = [row for row in reader]
# 按地区汇总销售额
region_sales = defaultdict(float)
for row in data:
region = row[1] # 地区
sales = float(row[4]) # 销售额
region_sales[region] += sales
# 排序:按销售额降序
sorted_regions = sorted(region_sales.items(), key=lambda x: x[1], reverse=True)
categories = [item[0] for item in sorted_regions]
values = [round(item[1], 2) for item in sorted_regions]
# 构建 ECharts 配置
echarts_config = {
"title": {
"text": "各地区销售额统计",
"left": "center"
},
"tooltip": {
"trigger": "axis",
"axisPointer": {"type": "shadow"},
"formatter": "{b}: {c} 元"
},
"grid": {
"left": "3%",
"right": "4%",
"bottom": "3%",
"containLabel": True
},
"xAxis": {
"type": "category",
"data": categories,
"name": "地区",
"axisLabel": {"interval": 0}
},
"yAxis": {
"type": "value",
"name": "销售额(元)"
},
"series": [
{
"name": "销售额",
"type": "bar",
"data": values,
"itemStyle": {
"color": "#5470c6"
},
"label": {
"show": True,
"position": "top",
"formatter": "{c}"
}
}
]
}
output = "\n```echarts\n" + json.dumps(echarts_config, indent=2, ensure_ascii=False) + "\n```"
return {"output": output}
输出节点用于输出生成的图表。

5、执行结果
