前言
在当前背景下,随着信息技术的迅猛发展和大数据时代的到来,如何高效地处理和可视化数据成为了企业和个人面临的重要挑战。传统的数据处理方式往往无法满足快速变化的需求,尤其是在需要将复杂的数据信息以直观、易于理解的方式呈现出来时显得力不从心。图表可视化助手(Chatflow)应运而生,它是一款基于华为云平台开发的生成式AI,专注于解决数据可视化的问题。通过使用Dify-LLM应用开发平台和DeepSeek推理系统,该工作流能够自动将上传的表格文件内容转换为图表形式展示,并支持多种交互方式,极大地提高了数据处理效率和用户体验。值得一提的是,基于CCE容器引擎进行高可用部署,确保了应用程序的稳定性和灵活性。此外,华为云提供的Flexus实例以其卓越的计算性能和弹性扩展能力,进一步增强了系统的响应速度和处理能力。
- DeepSeek在线推理服务: https://support.huaweicloud.com/deepseek-aislt/deepseek_01.html
- Dify-LLM应用开发平台部署文档:https://support.huaweicloud.com/dify-aislt/dify_05.html
- CCE高可用部署保姆教程:https://blog.csdn.net/weixin_62782025/article/details/148372050
快速部署Dify-LLM(高可用)
CCE容器高可用方案架构
创建桶
准备一个OBS桶:(如果已有,可跳过此步骤)登录华为云对象存储服务控制台,单击“创建桶”进入obs桶创建界面,
在操作时,先选取可用区域,接着输入桶名称,选择标准存储,其余配置保持默认状态,最后点击“立即创建”即可。
在弹出的提示框中,点击确定
创建完成后可查看已创建的桶,点击桶名称进入详情界面,复制桶名称并保存备用。
获取AK、SK
访问密钥ID(AK),识别访问用户的身份,取值范围:20,仅支持大写字母和数字,用于将生成的图像上传至OBS桶。参考获取AK、SK密钥。
秘密访问密钥(SK),对请求数据进行签名验证,取值范围:40,仅支持大小写字母和数字,用于将生成的图像上传至OBS桶。参考获取AK、SK密钥。
登录华为云,在右上角单击 “控制台”。鼠标移动至右上方的用户名,在下拉列表中选择 “我的凭证”。
找到访问密钥模块(通常在左侧导航栏或页面中部)。点击新建访问秘钥按钮,按提示完成密钥创建。
输入秘钥的描述信息,勾选 “我已阅读并同意”,点击确认按钮,完成访问秘钥创建。
创建成功后,下载包含访问密钥 ID(AK)和秘密访问密钥(SK)的.csv 文件进行保存
部署流程
登录华为云解决方案实践页面,在方案列表中找到 “快速搭建 Dify-LLM 应用开发平台” 或 点击此处跳转 “快速搭建 Dify-LLM 应用开发平台”,根据需求
选择部署版本
,选择“可用区
”,点击 “一键部署(CCE容器高可用部署)
” 按钮,系统将跳转至解决方案的**“资源栈创建界面”**。
进行模板选择操作,保持默认配置不变,然后点击页面右下角的“下一步”按钮。
在该步骤中,对云服务器密码进行设置(必填项),保持其他配置为默认状态,完成后点击页面右下角的 “下一步” 按钮。
关键配置项说明
配置项 说明 加密设置 需取消勾选“按模板要求对部分资源加密” 选项。 cce_node_pool_password CCE 集群 node 节点登录密码,用于集群节点访问。 pgsql_password PostgreSQL 数据库管理员密码,需符合指定格式要求(注意取值范围限制)。 pgsql_user_password PostgreSQL 数据库的 database 用户密码,需与管理员密码规则一致。 redis_password Redis 数据库密码,用于数据库认证。 css_password CSS 向量数据库密码,确保数据库安全访问。 obs_bucket 填写之前创建的 OBS 桶名称(需与实际创建的桶名完全一致)。 access_key 填写访问密钥 ID(AK),用于云服务身份验证。 secret_key 从下载的.csv 文件中获取秘密访问密钥(SK),需准确填写。 ecs_password 部署 Embedding 和 Reranker 模型的云服务器登录密码。
一定要确认密码强度够且余额充足,不然会返回部署失败(仔细检查配置参数)
进行资源栈设置,开启“回滚设置”开关,完成后点击 “下一步” 按钮。(不做权限委派操作)
进入配置确认环节,仔细核对所有设置无误后,点击页面右下角的 “创建执行任务” 按钮启动部署流程。
当系统弹出创建执行计划对话框时,自行设置执行计划名称(支持自定义内容),确认无误后点击 “确定” 按钮。
可以看到执行计划创建成功,点击“部署”按钮,
点击 “部署” 按钮后,系统将弹出执行计划确认对话框,此时请点击对话框中的 “执行” 选项完成操作。
正在创建中,大概需要10-20分钟(确保配置信息无误,余额、密码强度等,如果有误不会扣除费用会进行
回滚
操作)
点击 “事件” 标签,可查看当前创建任务的状态详情,了解是否完成创建。
待“事件”中出现“
Apply required resource success
”,表示该解决方案已经部署完成。
可以再资源列表中看到所有创建的资源
也可以在华为云面板首页,看到当前已经存在的资源
手动刷新页面,在 “输出” 区域中查看 Dify-LLM 应用开发平台的访问说明。当堆栈部署状态显示成功后,Dify 应用搭建脚本将自动开始执行,请耐心等待 5 至 10 分钟(具体耗时可能因网络波动而略有差异)。
没有标记cce的是高质量知识库所在的服务器,标记的为所部署的高可用dify平台所在服务器
登录注册:在浏览器输入该地址,进入 Dify 界面后,点击 “注册” 按钮,依次填写邮箱、账号(自定义用户名)、密码(需符合复杂度要求),完成管理员账号创建后即可登录。
打开浏览器并访问您部署的 Dify 平台地址(可在堆栈 “输出” 中查询),进入登录界面后,依次输入前序步骤中注册的邮箱和密码,点击 “登录” 按钮即可进入 Dify 平台。
如下图,我们已经成功在华为云平台部署了Dify-LLM平台,接下来就可以进行各种开发操作了。
搭建DeepSeek推理系统
随着互联网信息量激增,企业和个人面临海量数据管理与高效检索需求,传统搜索引擎难以满足复杂需求。国产 AI 大模型 DeepSeek 崛起,其解决方案可在华为云 Flexus 云服务器 X 实例上快速搭建 DeepSeek-R1 轻量级推理系统。该模型专注数学、代码和自然语言推理任务,通过 Ollama 部署蒸馏版轻量模型打造私人 AI 助手,适用于多场景数据处理与智能推理。
官方文档:https://support.huaweicloud.com/deepseek-aislt/deepseek_01.html
快速部署:https://www.huaweicloud.com/solution/implementations/building-a-deepseek-lnference-system.html
根据需求
选择部署模式(CPU为例)
,选择“可用区
”,点击 “一键部署(CPU版)
” 按钮,系统将跳转至解决方案的**“资源栈创建界面”**。
进行模板选择操作,保持默认配置不变,然后点击页面右下角的“下一步”按钮。
在该步骤中,对云服务器密码进行设置(必填项),保持其他配置为默认状态,完成后点击页面右下角的 “下一步” 按钮。
进行资源栈设置,开启“回滚设置”开关,完成后点击 “下一步” 按钮。(不做权限委派操作)
进入配置确认环节,仔细核对所有设置无误后,点击页面右下角的 “创建执行任务” 按钮启动部署流程。
当系统弹出创建执行计划对话框时,自行设置执行计划名称(支持自定义内容),确认无误后点击 “确定” 按钮。
此时可观察到执行计划正在创建中,待其创建成功后,点击 “部署” 按钮启动部署流程。
可以看到执行计划创建成功,点击“部署”按钮,
点击 “部署” 按钮后,系统将弹出执行计划确认对话框,此时请点击对话框中的 “执行” 选项完成操作。
点击 “事件” 标签,可查看当前创建任务的状态详情,了解是否完成创建。
待“事件”中出现“
Apply required resource success
”,表示该解决方案已经部署完成。
单击 “资源” 查看已创建的资源(参考图示),点击 “蓝色资源名称” 进入弹性云服务器详情页,查看其绑定的
弹性公网 IP
。
跳转到ECS基本信息页面,查看弹性公网IP并进行保存
对接DeepSeek
成功部署快速搭建DeepSeek推理系统解决方案后,将DeepSeek大模型对接至Dify平台。
点击右侧“用户名称”下拉菜单,选择并点击“设置”选项。
点击左侧模型供应商,找到
Ollama
模型供应商,点击“添加模型”。
模型类型: 选择LLM
模型名称: 需填写快速部署中选择的模型(如 “deepseek-r1:7b”)
基础 URL 根据部署情况填写:
- 若 Dify 应用和 DeepSeek-R1 蒸馏版模型在同一服务器或同一 VPC 下,填写获取的私网 IP 地址,
- 若不在同一服务器且不在同一 VPC 下,则填写模型所在服务器的公网 IP
- 端口号统一为
11434
(使用公网连接时需确保模型服务器所在安全组放通该端口),完成后单击右下角 “保存” 并关闭窗口。
创建应用
登录
Dify
平台后,在工作室主界面找到并点击“创建空白应用”选项,即可开始搭建新的应用项目。
选择应用类型,先选定Chatflow类型,然后自定义填写应用名称、上传图标(可自定义),并完善描述信息,点击
创建
。
创建应用后会自动跳转至应用概览页,点击左侧菜单中的 编排 即可开始编排应用。系统会为我们自动生成一个工作流,可以在此基础之上添加和配置结点。
点击
开始节点
,之后点击右侧小加号,找到节点
选项,添加文档提取器
节点
点击
文档提取器
,之后点击右侧小加号,找到节点
选项,添加LLM
节点
点击
LLM
节点,之后点击右侧小加号,找到节点
选项,添加参数提取器
节点
点击
参数提取器
节点,之后点击右侧小加号,找到节点
选项,添加代码执行
节点
在
代码执行
节点直接连接上直接回复
节点,该工作流搭建成功,接下来进行配置
配置
开始节点
,点击开始节点,在右侧弹出的配置页面,点击添加输入变量
- 选择
单文件
类型,支持文件类型选择文档
,其余配置默认即可
接着对
文档提取器
进行配置,来配置其输入变量
,将前一个节点的输入变量,传递给该节点
配置
LLM节点
,点击LLM节点,在右侧为该节点选择我们配置好的DeepSeek-R1
模型
接着完成对大模型提示词的编写
- 在 LLM 上配置提示词是通过结构化指令明确任务目标、约束输出逻辑并注入上下文信息,使 工作流 能够按照预设规则高效执行指定任务的核心机制。
# 角色
你是一个数据整理专家,擅长数据格式的整理和合格的转换
# 数据
{{#1741943310857.text#}}
# 任务
把数据转换为csv格式
配置完大模型之好后为
参数提取器
配置模型和输入变量和提取参数以及对用的信息处理指令
- 模型: DeepSeek-R1
- 变量: text(大模型输出内容)
- 提取参数: csvdata
- 指令:
# 任务 提取csv格式的字符串
在代码执行节点配置
输入变量
和代码内容
,处理上个节点所输出的内容
import csv
import json
def main(csv_string):
# 将CSV字符串分割成行
lines = csv_string.strip().split('\n')
# 使用csv模块读取数据
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
# 创建完整的ECharts配置
echarts_config = {
"legend": {},
"tooltip": {},
"dataset": {
"source": data
},
"xAxis": [
{"type": "category", "gridIndex": 0},
{"type": "category", "gridIndex": 1}
],
"yAxis": [
{"gridIndex": 0},
{"gridIndex": 1}
],
"grid": [
{"bottom": "55%"},
{"top": "55%"}
],
"series": [
# 第一个网格中的折线图系列
{"type": "bar", "seriesLayoutBy": "row"},
{"type": "bar", "seriesLayoutBy": "row"},
{"type": "bar", "seriesLayoutBy": "row"},
{"type": "bar", "seriesLayoutBy": "row"},
# 第二个网格中的柱状图系列
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1},
{"type": "bar", "xAxisIndex": 1, "yAxisIndex": 1}
]
}
# 生成输出文件
output = f'```echarts\n{json.dumps(echarts_config, ensure_ascii=False)}\n```'
return {"result": output}
最后配置
直接回复
节点,用来输出指定信息,供用户查看,输出信息如下:
- 文档提取器(文档信息)
- 代码执行(图标信息)
调试应用
配置完成之后,点击预览进行工作流的测试,让我们来上传一个文件进行测试
可以看到,工作流将所上传的表格文件内容成功以
表格和echarts
的形式展现出来
测试无误,能够按照要求进行输出我们所需要的信息就可以进行发布操作
发布应用
当应用测试无误后,可点击界面右上角的 “发布” 按钮,然后按提示点击 “发布更新”,即可将工作流正式上线。
运行应用
发布完成后,可通过以下三种方式使用该 Chatflow 应用:
- 直接对话交互:在平台对话窗口输入问题,系统自动调用工作流逻辑生成回答;
- API 接口调用:通过平台提供的 API 接口,将 Agent 集成至第三方系统或应用中使用;
- 嵌入网页 / 小程序:获取嵌入代码后,将 Agent 功能集成到自有网页或小程序界面,供用户直接访问。
发布完成,直接运行该工作流,上传文件之后,在对话款随意输入信息,点击
开始
接下来工作流开始工作
运行结果如下图所示
至此你就用拥有了一个可以帮你将图表内容可视化的有力助手,可以在网页、浏览器插件、api等多场景进行调用
资源清理
访问华为云资源编排服务(RFS)控制台,在资源栈列表中定位到通过该解决方案创建的资源栈,点击资源栈名称右侧的 “删除” 按钮执行删除操作。
总结
整体操作下来,部署和使用图表可视化助手的过程非常顺畅,这得益于华为云提供的强大环境支持。华为云不仅提供了基于CCE容器引擎的高可用解决方案,还拥有丰富的AI模型库和一键部署功能,大幅降低了技术门槛和实施难度。特别是采用CCE容器高可用部署方案,使得应用在面对高并发访问时依然能保持高效稳定的运行。同时,华为云提供的Flexus实例因其出色的计算能力和资源弹性,非常适合处理复杂的计算任务,如深度学习推理等。这些优势共同作用,为用户提供了前所未有的便捷性和高效性,无论是对于开发者还是普通用户来说,都是一个不可多得的好帮手。如果你正在寻找一种简单有效的方式来提升你的数据处理能力和可视化效果,那么不妨试试华为云的产品和服务,相信它们会给你的工作带来意想不到的帮助。