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

Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echart助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)

Dify部署参考:Dify Rag部署并集成在线Deepseek教程(Windows、部署Rag、安装Ragan安装、安装Dify安装、安装ollama安装)

Dify+DeepSeek - Excel数据一键可视化(创建步骤案例)-DSL工程文件(可直接导入)

Dify+DeepSeek - Excel数据一键可视化(创建步骤案例)-Markdown示例文件

功能:输入文档或表格————>绘制图表

文章目录

  • 创建步骤
    • 点击创建Chatflow
    • 删除已有节点
    • 创建上传文件节点
      • 点击“开始”,创建输入字段text(文件路径或url)
      • 创建文档提取器
    • 为文档提取器输出创建`Excel转csv`节点
      • 新建节点
      • 模型我选择deepseek-reasoner
      • 按照以下格式填入prompt(输入数据选择`文档提取器/(x)text`)
      • 修改节点名称为`Excel转csv`
    • 为`Excel转csv`节点创建参数提取器节点
      • 新建节点
      • 设置指令
      • 设置模型
      • 设置输入变量
      • 添加提取参数`csv_data`
    • 为参数提取器节点创建代码执行节点
      • 新建节点
      • 代码填入
      • 代码解释
        • 1. **流程架构**:
        • 2. **核心算法**:
        • 3. **ECharts配置生成**:
        • 4. **异常处理边界**:
        • 5. **运维增强特性**:
    • 为执行代码节点添加直接回复节点
      • 创建节点
      • 输入直接回复内容(注意我修改了部分变量名,可能跟前面不兼容)
  • ~~节点测试~~ (无效)
    • 测试`文档提取器`(Excel转csv失败了,改成Markdown转csv)
      • 运行
      • 我的dify见鬼了,提取excel都是空的
      • 只能修改方案了,将后面的`Excel转csv`改成`Markdown转csv`
      • 测试提取markdown(没有问题)
  • 测试运行
    • 点击预览,然后上传文件
    • 在聊天框随便输入内容然后发送
    • 然后工作流就会逐个运行,最后输出结果
    • 点开右边工作流节点,能看到各个节点输入输出,方便调试

创建步骤

点击创建Chatflow

在这里插入图片描述

echart助手

在这里插入图片描述

删除已有节点

选中按Del:
在这里插入图片描述
在这里插入图片描述

创建上传文件节点

点击“开始”,创建输入字段text(文件路径或url)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建文档提取器

在这里插入图片描述
添加text字段输入:

在这里插入图片描述
在这里插入图片描述

为文档提取器输出创建Excel转csv节点

新建节点

在这里插入图片描述

模型我选择deepseek-reasoner

在这里插入图片描述

按照以下格式填入prompt(输入数据选择文档提取器/(x)text

#角色
你是一个数据整理专家,删除数据格式的整理和格式的转换。
#数据
囚 文档提取器/(x)text
#任务
将数据转换成csv格式

在这里插入图片描述
在这里插入图片描述

修改节点名称为Excel转csv

在这里插入图片描述

Excel转csv节点创建参数提取器节点

新建节点

在这里插入图片描述

设置指令

#任务
-提取csv格式的字符串

在这里插入图片描述

设置模型

在这里插入图片描述
在这里插入图片描述

设置输入变量

在这里插入图片描述

在这里插入图片描述

添加提取参数csv_data

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为参数提取器节点创建代码执行节点

新建节点

在这里插入图片描述
在这里插入图片描述

代码填入

import csv
import jsondef main(csv_data):# 解析CSVreader = csv.DictReader(csv_data.strip().splitlines())rows = list(reader)# 自动识别列结构headers = reader.fieldnamesif not headers or len(headers) < 2:return {'output': 'Error: 需要至少两列数据(1个分类列+1个数值列)'}# 默认第一列为分类轴,其余为数值列category_col = headers[0]value_columns = headers[1:]# 提取数据categories = [row[category_col] for row in rows]series_data = [{"name": col,"type": "bar","data": [float(row[col]) for row in rows]  # 处理浮点数} for col in value_columns]# 构建ECharts配置echarts_config = {"xAxis": {"type": "category", "data": categories},"yAxis": {"type": "value"},"series": series_data}# 返回结果return {'output': f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'}

代码解释

以下是对该代码的详细技术解析:

1. 流程架构
  • 输入:接收CSV格式的原始字符串数据
  • 处理:通过三层转换 pipeline:
    CSV文本 → Python字典结构 → ECharts JSON配置 → Markdown代码块封装
    
  • 输出:符合Markdown扩展语法规范的ECharts图表代码块
2. 核心算法
  • 列智能识别算法:采用启发式规则
    if len(headers) >=2:第一列 = 分类轴后续列 = 数值系列
    else:触发错误处理
    
  • 类型强制转换:float(row[col])实现字符串到数值的类型安全转换
3. ECharts配置生成
  • 生成符合Apache ECharts v5+规范的配置结构
  • 动态构建坐标系:
    • X轴:自动映射分类维度
    • Y轴:自动推断为数值轴
  • 系列数据采用bar(柱状图)可视化编码
4. 异常处理边界
  • 列数校验:强制要求至少包含2列数据
  • 浮点转换:假设所有数值列均可转换为float类型(需注意潜在TypeError风险)
5. 运维增强特性
  • 输入数据规范化:通过strip().splitlines()处理不同平台的换行符差异
  • Unicode安全:ensure_ascii=False确保中文等字符正确显示
  • 结构化错误消息:返回标准字典格式,方便日志采集和监控

该代码特别适用于运维监控场景下的自动化报表生成,可将Zabbix、Prometheus等监控系统导出的CSV指标数据快速转换为可交互的可视化图表。

为执行代码节点添加直接回复节点

创建节点

在这里插入图片描述

输入直接回复内容(注意我修改了部分变量名,可能跟前面不兼容)

在这里插入图片描述

filePath:
{{#1741057279322.filePath#}}
</br>文档提取器text:
{{#1741058246976.text#}}
</br>Excel转csv, csv text:
{{#1741058730753.text#}}
</br>参数提取器csv_data:
{{#1741065751183.csv_data#}}
</br>代码执行output:
{{#1741082638678.output#}}

节点测试 (无效)

测试文档提取器(Excel转csv失败了,改成Markdown转csv)

运行

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

我的dify见鬼了,提取excel都是空的

在这里插入图片描述

只能修改方案了,将后面的Excel转csv改成Markdown转csv

在这里插入图片描述

不过提示词貌似都不用改。

测试提取markdown(没有问题)

在这里插入图片描述

测试运行

点击预览,然后上传文件

在这里插入图片描述

在聊天框随便输入内容然后发送

在这里插入图片描述

然后工作流就会逐个运行,最后输出结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

点开右边工作流节点,能看到各个节点输入输出,方便调试

在这里插入图片描述


http://www.mrgr.cn/news/93252.html

相关文章:

  • VIA的寄生电感和Stub对高速信号的影响
  • 单细胞分析(21)——SCENIC 分析流程(singularity容器版)
  • RT-thread的MultiButton按键库的使用
  • 记录一次Spring事务失效导致的生产问题
  • 【DeepSeek 】学习编程的利器:DeepSeek 使用指南
  • 由麻省理工学院计算机科学与人工智能实验室等机构创建低成本、高效率的物理驱动数据生成框架,助力接触丰富的机器人操作任务
  • 给没有登录认证的web应用添加登录认证(openresty lua实现)
  • VsCode 快捷键备忘
  • DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨
  • ROS系统(三)编程基础
  • Docker 学习(一)
  • ubuntu20系统下conda虚拟环境下安装文件存储位置
  • springBoot文件上传、下载
  • 使用Qt调用HslCommunication(C++调用C#库)
  • P3385 【模板】负环
  • 带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)
  • 使用sympy求解给定函数表达式的拉普拉斯变换
  • 十大经典排序算法简介
  • 【Linux跬步积累】—— 线程池详解(有源代码)
  • 选择排序算法