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

相关推荐
总要学点什么1 天前
第65篇:地图卷帘控件——点「关闭卷帘」,消失的却是右边那半张地图
信息可视化·gis·webgl·cesium·空间分析
程序员清风2 天前
Python 数据可视化入门:Matplotlib 核心用法
python·信息可视化·matplotlib
科创致远2 天前
科创致远 ESD 静电监控全景落地指南
人工智能·信息可视化·制造·精益工程
2603_965148113 天前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
迪康Defender3 天前
终端安全运维:浅谈迪康端点安全一体化管理系统工具箱实用能力
运维·安全·信息可视化·自动化·运维开发·学习方法·远程工作
数字新视界3 天前
空调双机切换器AIRC1000红外控制原理解析
大数据·物联网·信息可视化·信息与通信·一体化机柜
ZGi.ai4 天前
Agent 同时处理多份文件,怎样安排并发?
并发控制·工作流·批量处理·aiagent·zgi·agentruntime
中科致研zkzhiyan5 天前
大学教授职称晋升汇报 PPT 设计指南
信息可视化·powerpoint·ppt
wewowilling5 天前
工作流 .... coze平台--AI--Agent--RAG--Function Calling
python·低代码·agent·零代码·工作流·coze
迪康Defender5 天前
终端安全行为分析:审计日志如何转化为业务报表?落地实践与避坑指南
运维·经验分享·安全·信息可视化·自动化·安全威胁分析·运维开发