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、执行结果

相关推荐
吃好睡好便好7 小时前
在Matlab中绘制质点三维运动轨迹图
开发语言·学习·matlab·信息可视化
技术小甜甜10 小时前
生产环境的“后悔药”:如何利用 Dify 版本控制与回滚机制建立 AI 应用的 CI/CD 闭环?
人工智能·ci/cd·版本控制·dify·ai应用·回滚
顾凌陵11 小时前
Python 数据可视化实战
开发语言·python·信息可视化
财经资讯数据_灵砚智能11 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年5月21日
大数据·人工智能·python·信息可视化·自然语言处理
Cthy_hy12 小时前
基于首届中国互联网数据挖掘竞赛数据集的行为相似网络分析
python·信息可视化·数据挖掘
AI玫瑰助手12 小时前
Python运算符:逻辑运算符(and/or/not)的短路特性
开发语言·python·信息可视化
GISer_Jing12 小时前
深入解析 Three.js:从架构设计到 WebGPU 渲染革命
javascript·信息可视化·webgl
码界筑梦坊12 小时前
132-基于Python的中老年体检数据可视化分析系统
开发语言·python·信息可视化·flask·毕业设计
Highcharts.js14 小时前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发