【Dify应用】连接数据库生成Echarts图表

news2025/7/19 5:49:33

这里写自定义目录标题

  • 需求
  • 文档内容
  • 测试环境
  • 实际效果
  • 工作流内容
  • 工具安装
  • B工作流详解
  • A工作流详解
  • 优化建议

需求

甲方要求。根据自然语言生成对应Echarts图表,并且数据来源于私有数据库。

文档内容

本文档内容主要展示使用Dify(本地源码)进行完成甲方需求。

测试环境

CPU:11th Gen Intel® Core™ i7-1165G7 @ 2.80GHz 2.80 GHz
内寸:RAM 32.0 GB (31.7 GB 可用)
显卡 Intel® Iris® Xe Graphics (128 MB)
Dify:本地源码方式部署

由于本机是商务笔记本,所以模型都是使用的API的方式进行使用,请各位自行准备。

实际效果

在这里插入图片描述

工作流内容

本功能分别使用了两个工作流
A:主工作流,主要是将数据转换成对应的图表
B:辅助工作流,将自然语言转换SQL,并在数据库中执行查询出对应数据,并将本工作流转成工具提供给A工作流调用。

A示例图:
在这里插入图片描述
B示例图:
在这里插入图片描述

工具安装

本次功能主要使用到了两个工具,分别是
rookie_text2data
ECharts图表生成
在这里插入图片描述

其中需要注意的是,rookie_text2data工具中自然语言转SQL所需要的模型不能是深度思考模型,这块需要注意

B工作流详解

首先讲一下B工作流,我们先在开始处增加一个变量(后续文章使用问题作为代替),用于接收用户发送的自然语言。
在这里插入图片描述
然后将添加rookie_text2data工具中的rookie_text2data节点并且进行配置相关信息,以及将问题信息传入到工具中。这里的模型我使用的是硅基流动中的internlm/internlm2_5-7b-chat,能达到预期效果。
在这里插入图片描述
后续使用模板转换工具进行转换变量类型,将JSON转换成String。
在这里插入图片描述
然后我这边使用的是LLM将SQL格式化的方式,如果有Python基础的同学也可以使用Python去处理输出的SQL内容,可能会更方便。

提示词:
你是一个SQL生成器,请根据{{#context#}}提取出SQL内容,请严格按以下要求输出:
1.仅返回标准SQL语句;
2.不要换行、缩进或格式化;
3.SQL必须要检验是否可以执行
请再次注意:只需返回纯SQL!不要开头、不要结尾、不要解释、不要代码块标记!

在这里插入图片描述
随后将LLM输出的SQL进行执行,这里用到了rookie_text2data工具中的rookie_excute_sql。
在这里插入图片描述
然后将rookie_excute_sql的结果输出,B工作流就结束了。

A工作流详解

A工作流相对就比较简单了,先将用户提出的问题作为输入给B工作流。
在这里插入图片描述
然后交给LLM将返回的数据按照自己希望的格式进行转换,此处有Python基础的同学也可以直接通过代码进行转换,但是想要做通用转换比较麻烦。
此处以订单数据-柱状图作为示例,想要通用的话,可以优化提示词以及将字段名称统一。

提示词
#角色
你是一个数据整理助手
#工作内容
根据{{#context#}}JSON数据总结出每个月的订单数量,其中创建时间是订单创建时间,每条数据为一条订单数量
#输出格式
月份:
订单数量:

在这里插入图片描述

后续使用参数提取器将对应参数进行提取出来,提前给ECharts组件做准备。此处演示的是柱状图,需要提供的数据有三个,标题,业务数据,以及X轴的数据。
在这里插入图片描述
然后使用Echarts-柱状图工具生成对应echarts参数。
在这里插入图片描述
最后将Echarts-柱状图工具输出的内容直接回复,就会展示柱状图了。

优化建议

  • 本次提问使用的原表名,实际场景可能用户会提问中文名,可以将数据库名称列表作为知识库导入,然后做知识检索获取对应的英文名称。

  • 本次主要使用的是柱状图,若场景有多种视图要做,可以用意图识别来判断,从而增加图表的多样性。

愿做时代的基石,虽然是星火,如果能助你燎原,也算实现人生价值。
希望各位看官看完后点赞 谢谢大家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RAG 实战|用 StarRocks + DeepSeek 构建智能问答与企业知识库

文章作者: 石强,镜舟科技解决方案架构师 赵恒,StarRocks TSC Member 👉 加入 StarRocks x AI 技术讨论社区 https://mp.weixin.qq.com/s/61WKxjHiB-pIwdItbRPnPA RAG 和向量索引简介 RAG(Retrieval-Augmented Gen…

ubuntu 22.04 使用ssh-keygen创建ssh互信账户

现有两台ubuntu 22.04服务器,ip分别为192.168.66.88和192.168.88.66。需要将两台服务器创建新用户并将新用户做互信。 创建账户 adduser user1 # 如果此用户不想使用密码,直接一直回车就行,创建的用户是没法使用用户密码进行登陆的 su - …

【Linux网络】Socket 编程TCP

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 TCP socket API 详解 socket(): bind(): listen(): accept(): connect V0…

ESP32-idf学习(二)esp32C3作服务端与电脑蓝牙数据交互

一、当前需求 目前是想利用蓝牙来传输命令,或者一些数据,包括电脑、手机与板子的数据传输,板子与板子之间的数据传输。构思是一个板子是数据接收终端,在电脑或手机下发指令后,再给其他板子相应指令,也需要…

NHANES指标推荐:CMI

文章题目:Association between cardiometabolic index and biological ageing among adults: a population-based study DOI:10.1186/s12889-025-22053-3 中文标题:成年人心脏代谢指数与生物衰老之间的关系:一项基于人群的研究 发…

前端单元测试实战:如何开始?

实战:如何开始单元测试 1.安装依赖 npm install --save-dev jest2.简单的例子 首先,创建一个 sum.js 文件 ./sum.js function sum(a, b) {return a b; }module.exports sum;创建一个名为 sum.test.js 的文件,这个文件包含了实际测试内…

react-native搭建开发环境过程记录

主要参考:官网的教程 https://reactnative.cn/docs/environment-setup 环境介绍:macos ios npm - 已装node18 - 已装,通过nvm进行版本控制Homebrew- 已装yarn - 已装ruby - macos系统自带的2.2版本。watchman - 正常安装Xcode - 正常安装和…

观察者模式详解与C++实现

1. 模式定义 观察者模式(Observer Pattern)是一种行为型设计模式,定义了对象间的一对多依赖关系。当一个对象(被观察者/主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知…

UE5 关卡序列

文章目录 介绍创建一个关卡序列编辑动画添加一个物体编辑动画时间轴显示秒而不是帧时间轴跳转到一个确定的时间时间轴的显示范围更改关键帧的动画插值方式操作多个关键帧 播放动画 介绍 类似于Unity的Animation动画,可以用来录制场景中物体的动画 创建一个关卡序列…

AI测试用例生成平台

AI测试用例生成平台 项目背景技术栈业务描述项目展示项目重难点 项目背景 针对传统接口测试用例设计高度依赖人工经验、重复工作量大、覆盖场景有限等行业痛点,基于大语言模型技术实现接口测试用例智能生成系统。 技术栈 LangChain框架GLM-4模型Prompt Engineeri…

C#中扩展方法和钩子机制使用

1.扩展方法: 扩展方法允许向现有类型 “添加” 方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像实例方法一样进行调用。 使用场景: 1.当无法修改某个类的源代码&#…

YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、YOLOv12的网络结构图

文章目录 一、YOLOv5二、YOLOv6三、YOLOv7四、YOLOv8五、YOLOv9六、YOLOv10七、YOLOv11八、YOLOv12九、目标检测系列文章 本文将给出YOLO各版本(YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、YOLOv12)网络结构图的绘制方法及图。本文所展…

03 UV

04 Display工具栏_哔哩哔哩_bilibili 讲的很棒 ctrlMMB 移动点 s 打针 ss 批量打针

AIGC-几款本地生活服务智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…

C#/.NET/.NET Core拾遗补漏合集(25年4月更新)

前言 在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。 ✍C#/.NET/.N…

MySQL性能调优(三):MySQL中的系统库(简介、performance_schema)

文章目录 MySQL性能调优数据库设计优化查询优化配置参数调整硬件优化 1.MySQL中的系统库1.1.系统库简介1.2.performance_schema1.2.1.什么是performance_schema1.2.2.performance_schema使用1.2.3.检查当前数据库版本是否支持1.2.4.performance_schema表的分类1.2.5.performanc…

印度zj游戏出海代投本土网盟广告核心优势

印度游戏出海代投本土网盟广告的核心优势包括: 本土化广告策略:针对印度市场的特点,定制本土化的广告策略,吸引更多印度用户的关注和参与。 深度了解印度市场:对印度文化、消费习惯、网络使用习惯等有深入了解&#x…

NO.97十六届蓝桥杯备战|数论板块-最大公约数和最小公倍数|欧几里得算法|秦九韶算法|小红的gcd(C++)

约数和倍数 如果a 除以b 没有余数,那么a 就是b 的倍数,b 就是a 的约数,记作b ∣ a 。 约数,也称因数。 最⼤公约数和最⼩公倍数 最⼤公约数Greatest Common Divisor,常缩写为gcd。 ⼀组整数的公约数,是…

《软件设计师》复习笔记(11.6)——系统转换、系统维护、系统评价

目录 一、遗留系统(Legacy System) 定义: 特点: 演化策略(基于价值与技术评估): 高水平 - 低价值: 高水平 - 高价值: 低水平 - 低价值: 低水平 - 高价…

人像面部关键点检测

此工作为本人近期做人脸情绪识别,CBAM模块前是否能加人脸关键点检测而做的尝试。由于创新点不是在于检测点的标注,而是CBAM的改进,因此,只是借用了现成库Dilb与cv2进行。 首先,下载人脸关键点预测模型:Index of /file…