当前位置: 首页 > news >正文

将Dify文档中的CSV数据提取并用ECharts可视化工具开发指南

image.png

开始

本文将分步骤讲解如何使用Dify平台,创建从文档文本提取到CSV转换,再到ECharts可视化的完整工作流。我们将逐步说明如何自动分析Excel文档并构建交互式仪表盘。

环境准备

Dify账号:创建账号并准备工作区
示例数据:准备数值型Excel格式文档

聊天流程创建

1. 从Dify仪表盘选择「聊天流程」

设置工作流名称为「文档可视化工具」

image.png

2. 添加「文档上传」组件作为输入字段

image.png

3. 向流程中添加文本提取工具

配置从上传文档中提取文本
将提取结果传递给后续步骤处理

image.png

4. LLM进行CSV转换

#角色
你是数据整理专家,负责数据格式整理和格式转换。
#数据
{{#1742042932212.text#}}
#任务
将数据转换为CSV格式并输出。

image.png

image.png

5. 使用Python脚本生成ECharts

image.png

import csv
import json

def main(csv_string):
    lines = csv_string.strip().split('\n')
    reader = csv.reader(lines)
    data = [row for row in reader]

    # 转换数值(除表头行和第一列外)
    for row in data[1:]:
        for i in range(1, len(row)):
            try:
                row[i] = float(row[i])
            except ValueError:
                pass

    cols = len(data[0])
    rows = len(data) - 1

    echarts_config = {
        "legend": {},
        "tooltip": {},
        "dataset": {
            "source": data
        },
        "xAxis": [
            {
                "type": "category",
                "gridIndex": 0,
                "data": data[0][1:]  # 列标签(排除第一列)
            },
            {
                "type": "category",
                "gridIndex": 1,
                "data": [row[0] for row in data[1:]]  # 行标签(第二行之后的第一列)
            }
        ],
        "yAxis": [
            {"type": "value", "gridIndex": 0},
            {"type": "value", "gridIndex": 1}
        ],
        "grid": [
            {"bottom": "55%"},
            {"top": "55%"}
        ],
        "series": []
    }

    # 行方向的柱状图系列(每行生成一个系列)
    row_series = []
    for row in data[1:]:
        row_series.append({
            "type": "bar",
            "seriesLayoutBy": "row",
            "name": row[0],
            "xAxisIndex": 0,
            "yAxisIndex": 0
        })

    # 列方向的柱状图系列(每列生成一个系列,排除第一列)
    col_series = []
    for col_idx in range(1, cols):
        col_series.append({
            "type": "bar",
            "seriesLayoutBy": "column",
            "name": data[0][col_idx],
            "xAxisIndex": 1,
            "yAxisIndex": 1
        })

    echarts_config["series"] = row_series + col_series

    output = "\n```echarts\n" + json.dumps(echarts_config, indent=2, ensure_ascii=False) + "\n```"
    return {"output": output}

6. 输出提取的文本和ECharts图表

image.png

7. 发布和运行应用

image.png

image.png

8. 测试运行

上传Excel文件

image.png

image.png

发送消息后自动可视化

image.png

生成类似以下双柱状图:

image.png

总结

该工具的特点:

  • 支持多种文档格式(Excel/PDF/文本)
  • LLM自动格式转换
  • 极短开发周期(数小时即可构建)

下一步建议:

  • 添加数据分析(平均值/相关性分析)
  • 仪表盘UI定制

通过Dify的可视化功能,尝试优化您的业务数据分析流程!参考本文内容,构建数据驱动型决策流程吧!

相关文章:

  • 甲骨文找回二次验证的方法(超简单)
  • Java 集合遍历过程中修改数据触发 Fail-Fast 机制 ,导致报ConcurrentModificationException异常
  • 电脑实用小工具推荐--屏幕录制软件Bandicam(班迪录屏)
  • ECharts中Map(地图)样式配置、渐变色生成
  • C语言交换两数
  • Dijkstra算法
  • 【蓝桥】模拟
  • Day16:字符串的排列
  • eBPF 实时捕获键盘输入
  • Day2 导论 之 「存储器,IO,微机工作原理」
  • 【测试篇】打破测试认知壁垒,从基础概念起步
  • 零基础上手Python数据分析 (5):Python文件操作 - 轻松读写,数据导入导出不再是难题
  • 【SpringMVC】常用注解:@RequestHeader
  • sentinel限流算法
  • 《DeepSeek深度使用教程:开启智能交互新体验》Deepseek深度使用教程
  • 第五章 树、2叉树
  • 這是我第一次寫關於aapenal服務器管理控制面板的文章
  • “个人陈述“的“十要“和“十不要“
  • 1、操作系统引论
  • Certbot实现SSL免费证书自动续签(CentOS 7 + nginx/apache)
  • 阿曼外交部:美伊谈判因故推迟
  • 乌副总理:乌美签署矿产协议
  • 上海市十六届人大常委会第二十一次会议表决通过有关人事任免事项
  • 中国空间站首批在轨繁育果蝇即将返回地球,有望获得多项科学成果
  • 港交所与香港证监会就“中概股回流意向”已与部分相关企业进行接触
  • 上海出台灵活就业人员公积金新政:不限户籍、提取自由,6月起施行