首页 > 基础资料 博客日记
Dify — Workflow - 数据可视化
2026-05-29 16:30:04基础资料围观5次
这篇文章介绍了Dify — Workflow - 数据可视化,分享给大家做个参考,收藏极客资料网收获更多编程知识
Dify Workflow 与 Chatflow 的核心区别
Workflow -- 一次返回结果
Chatflow -- 支持多次对话,多次返回结果
| 维度 | Chatflow | Workflow |
|---|---|---|
| 定位 | 对话式应用(如客服、问答助手) | 自动化批处理 / 数据处理流程 |
| 交互方式 | 用户 ↔ AI 多轮对话 | 触发式执行(API、定时、webhook) |
| 是否保留上下文 | ✅ 支持对话记忆(会话级) | ❌ 每次运行独立,无会话历史 |
| 输入输出 | 用户问题 + 可选变量 → 自然语言回复 | 结构化数据 → 结构化结果 |
| 典型节点 | 意图识别、回复生成、问答检索 | HTTP 请求、代码节点、参数提取、条件分支 |
| 适用场景 | 智能客服、Copilot、教育问答 | 数据清洗、报表生成、内容审核、定时任务 |
更直观的理解
- Chatflow:用户主动发问,AI 像人一样“聊回去”,过程中能记住之前说了什么。
- Workflow:更像一个数据处理管道,给它输入,它跑完逻辑返回结果,每次请求都是“失忆”的。
选择建议
- 需要与用户多轮对话、记住上下文 → 选 Chatflow
- 需要批量处理数据、API 集成、无人值守自动化 → 选 Workflow
两者可以配合使用,例如 Workflow 做后台数据处理,再由 Chatflow 提供给用户查询入口。
注意点:ECharts(需要CSV),需要LLM 整理数据格式,deepseek-chat 模型对 ECharts 所需的数据处理比较有好,不要直接选用推理模型,费token效果还不好
推理在工具里面应用效果不是很好,在自己开发大模型的时候,推理比较准确。
比如:我只让大模型给我回复什么内容,赋值到什么样的变量里,自己控制节点A->B->C,A输出的内容,要在B节点用变量来接受,比如 [Dify — Chatflow - 数据库智能查询]( https://www.cnblogs.com/vipsoft/p/20199856 ))
创建工作流
创建工作流

添加变量

添加文档提取器


添加大模型
将文件里的数据进行格式整理
将{{上下文}}中的数据整理成csv格式并输出,只需要输出结果,不需要输出额外解释内容。


选择 deepseek-chat 模型,有助于输入图标

添加代码执行


import csv
import json
from collections import defaultdict
def main(csv_string):
# 解析 CSV 数据
lines = csv_string.strip().split('\n')
reader = csv.reader(lines)
headers = next(reader)
data = [row for row in reader]
# 提取列名
category_col, subcategory_col, value_col = headers
# 构建数据字典
data_dict = defaultdict(lambda: defaultdict(float))
for row in data:
category, subcategory, value = row
data_dict[category][subcategory] += float(value)
# 获取所有类别和子类别
categories = list(data_dict.keys())
subcategories = list({subcat for subcats in data_dict.values() for subcat in subcats})
# 构建 ECharts 配置
echarts_config = {
"tooltip": {"trigger": "axis"},
"legend": {"data": subcategories},
"xAxis": {"type": "category", "data": categories},
"yAxis": {"type": "value"},
"series": [
{
"name": subcategory,
"type": "bar",
"data": [data_dict[category].get(subcategory, 0) for category in categories]
}
for subcategory in subcategories
]
}
output = "\n```echarts\n" + json.dumps(echarts_config, indent=2, ensure_ascii=False) + "\n```"
return {"output": output}
添加结束节点



测试运行

上传文件

文章来源:https://www.cnblogs.com/vipsoft/p/20214913
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:

