dify案例分享 | ECharts打造上证综指5日K线可视化,超详细教程来袭
一、前言
ECharts是百度开源的可视化解决方案,基于ZRender矢量渲染引擎构建,提供跨平台、多端适配的交互式数据可视化能力。该库凭借其模块化架构与API设计,支持20余种主流图表类型及多维数据分析功能,在金融、物联网、商业智能等领域实现日均千万级调用。
作为当前国内应用最广的前端可视化工具链,ECharts 7.x版本通过以下技术特性持续领跑市场:
- WebGL加速渲染引擎,可承载百万级数据点实时渲染
- 声明式配置语法,支持JSON Schema校验与智能提示
- 动态数据驱动机制,实现毫秒级增量更新
- 完善的响应式设计,适配从4K大屏到移动H5的全场景需求
本次我们将基于Dify.AI的Workflow引擎,构建上证综指5日K线可视化组件。话不多说我们先看一下实现效果。

工作流展示

二、echarts展示工作流制作
2.1 开始
首选我们先定义一个开始节点,这个开始节点需要设置1个文本上传输入参数,目前这个主要使用excel。所以我们设置文件类型。

按照上图设置一个file作为开始节点的输入参数。
2.2 文档提取器
这个地方我们需要接受开始节点上传的excel 文件,通过这个文档提取器提取文档里面的内容。输入变量是file

2.3 LLM大语言模型
这个地方我们需要设置一个大语言模型,通过这个大语言模型提取 excel文本内容信息。这里模型我们选择deepseekv2.5的模型,使用硅基流动提供的deepseek模型,有的小伙伴可以问为什么不用v3 和R1模型呢?这里我们只提取文本内容,所以不需要非常厉害的模型。另外硅基最近流量比较大我们选个小模型这样反而速度更快点。
系统提示词
你是一个文档提取专家,请根据用户上传文档内容{{#1740472111460.text#}}提取该表格里面的数据返回json格式数据。
其中内容格式‘上证指数日线行情’、‘open’、‘high’、‘low’、‘close’、‘volume’字段返回信息,返回的结果信息以json格式返回
返回数据格式如下:
{
"上证指数日线行情": \[
{
"date": "2025-02-19 00:00:00",
"open": 3320.78,
"high": 3352.09,
"low": 3320.58,
"close": 3351.54,
"volume": 50291300000
},
{
"date": "2025-02-20 00:00:00",
"open": 3347.59,
"high": 3355.56,
"low": 3338.03,
"close": 3350.78,
"volume": 50435700000
}
\]
}
模型的其他设置这里没有过多讲解的地方。

2.4 echarts代码转换生成
这个地方是本次工作流的一个难点,主要的作用就是通过上个节点的大语言模型提取输出的json格式的数据通过python 代码和echarts来实现数据组装。
代码如下:
import json
import os
import re
def main(json\_str: str) \-> dict:
try:
\# 预处理:清理非 JSON 部分
json\_match = re.search(r'\\{.\*\\}', json\_str, re.DOTALL)
if not json\_match:
return {"result": "Error: Invalid JSON format"}
\# 提取合法的 JSON 部分
cleaned\_json\_str = json\_match.group(0)
\# 解析JSON数据
data = json.loads(cleaned\_json\_str)
filename = data.get("filename", "stock\_chart.html")
stock\_data = data.get("上证指数日线行情", \[\])
\# 准备数据格式
dates = \[item\['date'\].split(' ')\[0\] for item in stock\_data\] \# 提取日期部分(去掉时间)
open\_prices = \[item\['open'\] for item in stock\_data\]
close\_prices = \[item\['close'\] for item in stock\_data\]
low\_prices = \[item\['low'\] for item in stock\_data\]
high\_prices = \[item\['high'\] for item in stock\_data\]
volumes = \[item\['volume'\] / 1e8 for item in stock\_data\] \# 转换为亿单位
\# 构建ECharts配置
echarts\_config = {
"title": {
"text": "上证指数日线行情"
},
"legend": {
"data": \["开盘价", "最高价", "最低价", "收盘价", "成交量"\]
},
"tooltip": {},
"dataset": {
"source": \[
\["日期", "开盘价", "最高价", "最低价", "收盘价", "成交量"\],
\*\[\[dates\[i\], open\_prices\[i\], high\_prices\[i\], low\_prices\[i\], close\_prices\[i\], volumes\[i\]\]
for i in range(len(dates))\]
\]
},
"xAxis": \[
{"type": "category", "gridIndex": 0},
{"type": "category", "gridIndex": 1}
\],
"yAxis": \[
{
"gridIndex": 0,
"name": "价格趋势(单位:点)"
},
{
"gridIndex": 1,
"name": "成交量(单位:亿)"
}
\],
"grid": \[
{"bottom": "55%"},
{"top": "55%"}
\],
"series": \[
\# 第一个网格中的折线图系列
{"type": "line", "seriesLayoutBy": "row", "name": "开盘价"},
{"type": "line", "seriesLayoutBy": "row", "name": "最高价"},
{"type": "line", "seriesLayoutBy": "row", "name": "最低价"},
{"type": "line", "seriesLayoutBy": "row", "name": "收盘价"},
\# 第二个网格中的柱状图系列
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1, "name": "成交量"}
\]
}
\# 生成输出文件
output = "\`\`\`echarts\\n" + json.dumps(echarts\_config, indent\=2, ensure\_ascii\=False) + "\\n\`\`\`"
\# 返回结果
return {
"result": output
}
except Exception as e:
return {
"result": f"Error: {str(e)}"
}
输入参数 json_str 输入值是大语言模型llm string值
输出变量 result 数据类型是字符串string

2.5 直接回复
这个地方就比较简单,因为上个节点把数据拼装好后,这里就直接显示就可以了。

以上我们就完成工作流的搭建。
三、验证及测试
上面制作好的工作流(chatflow) 就可以发布出去了


项目体验地址:http://dify.duckcloud.fun/chat/HesevIZjlbSYd4NM
为了方便演示我这里上传我的excel 测试数据。地址https://mypicture-1258720957.cos.ap-nanjing.myqcloud.com/Obsidian/%E8%82%A1%E7%A5%A8%E8%A1%A8%E6%A0%BC%E6%95%B0%E6%8D%AE.xls
相关资料和文档可以看源的项目 https://github.com/wwwzhouhui/dify-for-dsl
总结
今天主要带大家了解了如何基于 Dify 的 Workflow 引擎构建上证综指 5 日 K 线可视化组件,详细介绍了使用 ECharts 实现股票价格趋势显示的工作流制作过程。介绍了 ECharts 作为百度开源的可视化解决方案的强大功能及技术特性。通过定义开始节点、使用文档提取器、配置 LLM 大语言模型、进行 echarts 代码转换生成以及直接回复等步骤,完成了工作流的搭建,并进行了验证和测试。还给出了项目体验地址及相关资料文档的开源项目地址。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**
一、2025最新大模型学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场
L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程
L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践
L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署
L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

三、大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

四、大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
更多推荐


所有评论(0)