Dify搭建数据可视化工作流

本篇博客主要记录使用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、执行结果

相关推荐
工业HMI实战笔记4 小时前
数据可视化实战:趋势图、仪表盘、热力图的正确用法
信息可视化·数据挖掘·数据分析
ITresearchGuest5 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·人工智能·信息可视化
Highcharts.js13 小时前
数据赋能智造|可视化在制造业工业物联网系统中的落地实践——Highcharts数据可视化图表开发工具应用
物联网·信息可视化·数据可视化
阿图灵14 小时前
LangGraph 实战 03:Workflows 与 Agents——六种工作流模式与智能体实战(附 6 个可运行示例)
java·前端·javascript·工作流·ai agent·智能体·langgraph
海兰17 小时前
【 Python 量化交易】第6章:数据可视化
开发语言·python·信息可视化
海浪仙人掌20 小时前
成本分析的定义是什么?成本分析常用方法有哪几种?
信息可视化
IT研究室20 小时前
最新大数据毕业设计选题推荐-基于大数据的电商与本地服务消费评论数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·课程设计
lilichong831234561 天前
CRM支持数据统计分析吗?业务数据可视化应用路径解读
信息可视化·数据挖掘·数据分析
躺柒2 天前
读数据可视化19层次数据
信息可视化·数据挖掘·数据分析·数据可视化·层次数据·层次结构
城数派2 天前
1980-2026年全国POI兴趣点(逐年全品类)数据
信息可视化