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

相关推荐
小七-七牛开发者6 小时前
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
ai·大模型·agent·claude·token·工作流·claudecode·ai coding
十三画者7 小时前
【文献分享】SIMBA:单细胞嵌入与特征共学习
人工智能·信息可视化·数据挖掘·数据分析·数据可视化
kels88998 小时前
实战排坑:黄金实时API开发,XAUUSD Tick报文异常处理实践
开发语言·python·websocket·网络协议·信息可视化
绎奇PPT9 小时前
紧扣评审评分标准 打造原创探索计划高分PPT
信息可视化·powerpoint·ppt
独码侠11 小时前
Dify 知识库索引(中):打开源码,拆穿关于“经济索引”的三个谣言
后端·python·django·embedding·知识库·索引·dify
招风的黑耳1 天前
用Axure打造科技感数据可视化大屏:120+行业模板赋能智慧决策
科技·信息可视化·axure
小张同学a.1 天前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
3A Cloud2 天前
Architecture Diagram Skill 详细介绍
人工智能·笔记·信息可视化
专注数据的痴汉3 天前
「数据下载」黑龙江省黑土区富锦市土地利用数据
大数据·人工智能·信息可视化
鱼日先生3 天前
Dify 中级实验(13):多 Agent 协作——如何编排多个智能体分工干活?
工作流·dify·ai agent·大模型应用·ai 训练