我用Dify+数据库+Echarts搭建了一个能“听懂”人话的数据可视化助手!(含自然语言转SQL)

Dify+数据库+ECharts打造数据可视化图表 Echarts作为一款强大的数据可视化工具,能够将复杂的数据转化为直观、生动的图表,帮助用户更好地理解和分析信息。本文介绍了如何利用Dify平台结合Echarts图表库,轻松搭建工作流,将数据库中的数据直接转化为精美的可视化图表。首先,通过安装数据库插件和准备数据表,确保数据源的完整性。随后,利用Echarts插件和代码执行节点,将数据库查询结果转换为适合图表展示的格式,并最终生成柱状图、散点图等多种图表。通过这种方式,用户可以快速实现数据可视化,发现数据中的关键信息和异常值。 阅读详情
AI摘要

本文介绍了利用Dify的工作流编排能力和大型语言模型,搭建能“听懂”自然语言指令的数据可视化助手的方法。核心思路是将用户问题转化为SQL查询数据库,处理结果生成Echarts图表或文字回复。还分享了数据准备、搭建对话流和测试的具体步骤,最后提供了AI大模型学习资料。

你是否曾幻想过,

面对复杂的数据,

不再需要手动编写繁琐的SQL,

不再需要费力选择图表类型,

只需像和助手对话一样,

轻松说出你的数据分析需求,

精美的图表便能自动呈现在眼前?

使用效果如下:

Image 我将手把手带你利用dify的工作流编排能力和大型语言模型(LLM),搭建一个能“听懂”我们自然语言指令,自动查询数据库、判断图表类型,并最终生成酷炫Echarts图表的数据可视化助手!

忘记那些写死的SQL和固定的图表吧,是时候让数据分析变得如此智能和随心所欲了!

核心思路很简单: 用户用大白话提问 -> 工作流智能判断是否需要图表及图表类型 -> 将用户问题转化为SQL语句 -> 执行SQL查询数据库 -> 将查询结果处理成图表所需格式 -> 调用相应的Echarts图表插件生成图表 -> (如果不需要图表)LLM总结数据并回复。

听起来很酷?让我们一步步拆解这个工作流是如何搭建的。

1 数据准备

还是用中国历史票房红榜的数据了,使用Mysql数据库。

你可以根据自己的实际业务数据进行替换。

我们选取其中的年份、电影名称、评分、导演、票房来新建数据表。

新建数据库test。

新建数据库表boxoffice结构如下:

Image

-- ------------------------------ Table structure for boxoffice-- ----------------------------DROPTABLE IF EXISTS `boxoffice`;CREATETABLE `boxoffice`  (  `years` varchar(64) CHARACTERSET utf8 COLLATE utf8_unicode_ci NULLDEFAULTNULL,  `movie_name` varchar(255) CHARACTERSET utf8 COLLATE utf8_unicode_ci NULLDEFAULTNULL,  `score` floatNULLDEFAULTNULL,  `director` varchar(64) CHARACTERSET utf8 COLLATE utf8_unicode_ci NULLDEFAULTNULL,  `box_office` floatNULLDEFAULTNULL) ENGINE = MyISAM CHARACTERSET= utf8 COLLATE= utf8_unicode_ci ROW_FORMAT =Dynamic;

数据如下:

Image

2 搭建对话流

这次用到了两个插件,需要提前安装一下。

1、插件市场搜索“db”,找到【rookie_text2data】插件进行安装。

Image

2、插件市场搜索“Echarts”,找到【ECharts图表生成】插件进行安装。

Image

新建一个对话流,这次稍微复杂一点点,整体流程如下:

Image

2.1 开始节点

这里无需特殊配置,它将作为接收用户自然语言提问的入口。

2.2 判断用户问题 (LLM节点)

这是我们工作流的第一个“智能大脑”。

它负责分析用户的原始问题,判断是否需要图表,并初步确定合适的图表类型(柱状图、折线图、饼图,或不需要图表)。

模型选择: deepseek-ai/DeepSeek-V3

Image

完整提示词如下:

你是一个智能助手,需要根据用户的问题判断是否需要用图表展示数据,并判断适合的图表类型。  
请严格按照如下JSON格式输出,不要输出多余内容:

{
  "need_chart": true/false,  // 是否需要图表
  "chart_type": "bar/line/pie/none"  // 推荐的图表类型,bar=柱状图,line=折线图,pie=饼图,none=不需要图表
}

判断标准:
- 如果用户问题中包含“趋势”、“变化”、“对比”、“分布”、“比例”、“占比”、“增长”等词,通常需要图表。
- 如果用户问题中有“每年”、“历年”、“随时间”、“随年份”等,推荐折线图(line)。
- 如果用户问题中有“对比”、“排行”、“最多”、“最少”等,推荐柱状图(bar)。
- 如果用户问题中有“占比”、“比例”、“分布”等,推荐饼图(pie)。
- 如果用户只是问具体数值、详情、描述,不需要图表,chart_type 填 none。

示例:
用户问题:“请用图表展示历年票房变化”  
输出:{"need_chart": true, "chart_type": "line"}

用户问题:“各导演的票房占比是多少?”  
输出:{"need_chart": true, "chart_type": "pie"}

用户问题:“哪吒之魔童降世的票房是多少?”  
输出:{"need_chart": false, "chart_type": "none"}

现在请判断下面这个问题:
{{#sys.query#}}

2.3 自然语言转SQL(ROOKIE_TEXT2DATA)

这个节点是实现“自然语言对话数据库”的核心。它会将用户的原始问题(sys.query)和我们预设的数据库表结构信息结合,智能地生成可执行的SQL语句。

输入变量:

  • 数据表名称: boxoffice
  • 查询语句: {{sys.query}} (引用开始节点的用户输入)

数据库配置: 正确填写数据库类型、IP、端口、库名、用户名、密码。

大模型:我这里就用DeepSeek V3了。

Image

返回数据格式为TEXT,就是自然语言转成的SQL语句。

Image

自定义提示词:

表名:boxoffice
字段说明:
- years:年份,int
- movie_name:电影名,string
- score:评分,float
- director:导演,string
- box_office:票房,int

注意事项:
- 如有分组统计,请使用SUM、AVG等聚合函数,不要直接用原始字段。
- 所有非聚合字段必须出现在GROUP BY中。
- 只输出SQL语句,不要解释。

示例查询:
1. 查询每个导演的总票房:SELECT director, SUM(box_office) FROM boxoffice GROUP BY director;
2. 查询每年票房最高的电影:SELECT years, movie_name, MAX(box_office) FROM boxoffice GROUP BY years;

之所以选择这个插件,因为支持自定义提示词,这样就可以把表结构及注意事项都写在提示词中。

2.4 执行SQL(ROOKIE_EXCUTE_SQL)

此节点负责连接数据库,并执行上一步生成的SQL语句。

  • 输入变量:

    • 待执行的SQL语句: {{rookie_text2data.text}} (引用上一个节点的输出,即生成的SQL语句)
  • 数据库配置: 正确填写数据库类型、IP、端口、库名、用户名、密码。

  • 返回数据格式: TEXT。

Image

Image

2.5 条件分支-判断是否需要图表

这是一个逻辑判断节点,它会根据第一个LLM节点【判断用户问题】的输出,决定工作流是走向“生成图表”的分支,还是走向“无需图表,直接文字回答”的分支。

Image

2.6 处理图表数据

上一个条件分支走到需要图表,工作流会进入这个LLM节点。

它的核心任务是将SQL查询结果(目前是TEXT格式)和第一个LLM判断出的图表类型(target_chart_type),转换为后续代码节点或图表插件所需的格式化数据。

Image

完整提示词如下:

SYSTEM
你是一个数据格式化专家。你的核心任务是根据已执行的SQL查询结果和用户指定的图表类型,将数据转换为特定图表工具所需的输入格式。

## 上下文变量说明:
*`target_chart_type`: (String) 用户期望生成的图表类型,值为 "bar"、"pie" 或 "line"。此信息来源{{#1746780564950.text#}}。
*`sql_execution_result`: (JSON Array) SQL查询的执行结果,来源于{{#context#}}例如 `[{"category": "A", "value": 10}, {"category": "B", "value": 20}]`。
*`user_original_query`: (String) 用户最原始的自然语言查询,可用于辅助生成图表标题,,来源于{{#sys.query#}}。

## 图表工具输入规范:
1.**柱状图 (bar):**
    * 标题 (String)
    * 数据 (String): 数字用 ";" 分隔 (例如:"150;280;200")
    * x轴 (String): 文本用 ";" 分隔 (例如:"一月;二月;三月")

2.**饼图 (pie):**
    * 标题 (String)
    * 数据 (String): 数字用 ";" 分隔 (例如:"30;50;20")
    * 分类 (String): 文本用 ";" 分隔 (例如:"类型A;类型B;类型C")

3.**线性图表 (line):**
    * 标题 (String)
    * 数据 (String): 数字用 ";" 分隔 (例如:"10;15;13;18")
    * x轴 (String): 文本用 ";" 分隔 (例如:"周一;周二;周三;周四")

## 任务指令:

1.**解析核心数据**:
    * 将输入的 `sql_json_string_result` (它是一个字符串) **作为 JSON 进行解析**。解析后的结果可能是单个 JSON 对象(如果SQL只返回一行)或一个 JSON 对象数组(如果SQL返回多行)。我们将其称为 `core_sql_data`。
    * 例如,如果 `sql_json_string_result` 是字符串 `"[{\"colA\": \"val1\", \"colB\": 10}]"`,那么 `core_sql_data` 就是实际的数组 `[{"colA": "val1", "colB": 10}]`。
    * 如果 `sql_json_string_result` 是字符串 `"{\"colA\": \"val1\", \"colB\": 10}"`,那么 `core_sql_data` 就是实际的对象 `{"colA": "val1", "colB": 10}`。为了统一处理,如果它是单个对象,请将其视为只包含一个元素的数组。

2.**生成图表标题**: 参考 `user_original_query`,生成一个简洁明了的 `chart_tool_title`。

3.**数据提取与格式化 (基于 `core_sql_data`)**:
    * 分析 `core_sql_data`。数组中的每个对象代表一个数据点。你需要从中识别出用作标签/类别/x轴的字段(通常是文本或日期类型)和用作数值/数据的字段(通常是数字类型)。
    ***根据 `target_chart_type` 指示的类型进行处理:**
        ***若为 "bar"**:
            * 从 `core_sql_data` 中提取所有对象的数值字段值,用 ";" 连接成 `chart_tool_data_string`。
            * 提取所有对象的标签字段值,用 ";" 连接成 `chart_tool_label_string` (对应x轴)。
        ***若为 "pie"**:
            * 从 `core_sql_data` 中提取所有对象的数值字段值,用 ";" 连接成 `chart_tool_data_string`。
            * 提取所有对象的标签字段值,用 ";" 连接成 `chart_tool_label_string` (对应分类)。
        ***若为 "line"**:
            * 从 `core_sql_data` 中提取所有对象的数值字段值,用 ";" 连接成 `chart_tool_data_string`。
            * 提取所有对象的标签字段值,用 ";" 连接成 `chart_tool_label_string` (对应x轴).
    * 确保 `core_sql_data` 中至少有一个标签/类别字段和一个数值字段可供提取。如果字段不明确(例如,多个数字列),优先选择第一个文本/日期字段作为标签,第一个数字字段作为数据,或根据 `user_original_query` 中的暗示选择。

4.**构建输出**:
    * 以严格的JSON对象格式输出以下字段:
        *`chart_tool_title` (String)
        *`chart_tool_data_string` (String)
        *`chart_tool_label_string` (String)
        *`chart_type_final` (String, 其值应等于输入的 `target_chart_type`)

## 示例(假设变量已按上述说明传入):

* 若 `target_chart_type` = "bar"
* 若 `sql_json_string_result` (字符串) = `"[{\"product_name\": \"产品A\", \"total_sales\": 5500}, {\"product_name\": \"产品B\", \"total_sales\": 7200}]"`
* 若 `user_original_query` = "查询产品销售额柱状图"

期望的输出JSON:
```json
{
  "chart_tool_title": "产品销售额柱状图",
  "chart_tool_data_string": "5500;7200",
  "chart_tool_label_string": "产品A;产品B",
  "chart_type_final": "bar"
}

2.7 代码节点转换数据

功能就是提取LLM的数据,作为图表节点的输入。

Image

完整代码如下:

import json
import re # 导入正则表达式模块

defmain(llm_data_input):
    llm_data_str = llm_data_input

    # 1. 清理 Markdown 代码块标记 (保持你现有的健壮清理逻辑)
    llm_data_str = llm_data_str.strip()
    if llm_data_str.startswith("```json"):
        llm_data_str = llm_data_str[len("```json"):]
    elif llm_data_str.startswith("```"):
        llm_data_str = llm_data_str[len("```"):]
    if llm_data_str.endswith("```"):
        llm_data_str = llm_data_str[:-len("```")]
    llm_data_str = llm_data_str.strip()
    
    data = {}
    try:
        data = json.loads(llm_data_str)
    except json.JSONDecodeError as e:
        return {
            "unpacked_title": f"Error: Invalid JSON - {e}",
            "unpacked_data": "",
            "unpacked_labels": "",
            "chart_type": "error_invalid_json"
        }

    title = data.get("chart_tool_title", "无标题")
    original_data_string = data.get("chart_tool_data_string", "") # 获取原始数据字符串
    label_string = data.get("chart_tool_label_string", "")
    chart_type = data.get("chart_type_final")

    if chart_type isNone:
        chart_type = "unknown_type_from_llm"

    # 2. 清理和验证 data_string (这是关键的修改部分)
    cleaned_data_parts = []
    if original_data_string: # 只有当原始数据字符串非空时才处理
        parts = original_data_string.split(';')
        for part in parts:
            part = part.strip() # 移除每个部分前后的空格
            if part: #确保部分不是空字符串
                try:
                    # 尝试转换为 float 来验证它是否是有效数字
                    # 我们仍然以字符串形式保存,因为插件期望分号分隔的字符串
                    float(part) # 如果这里失败,会抛出 ValueError
                    cleaned_data_parts.append(part)
                except ValueError:
                    cleaned_data_parts.append("0") # 方案 b: 替换为 "0"
                    # print(f"Warning: Invalid data part '{part}' replaced with '0'.")
            else:
                # 如果部分是空字符串 (例如来自 ";;"),也替换为 "0" 或跳过
                cleaned_data_parts.append("0") # 方案 b: 替换为 "0"
                # print(f"Warning: Empty data part replaced with '0'.")
    
    unpacked_data = ";".join(cleaned_data_parts)

    return {
        "unpacked_title": title,
        "unpacked_data": unpacked_data, # 使用清理过的数据字符串
        "unpacked_labels": label_string, # 标签字符串通常不需要转为数字,所以保持原样
        "chart_type": chart_type
    }

2.8 条件分支

判断代码节点的chart_type类型,给到不同的图表插件。

Image

2.9 饼图、柱状图、折线图

这些是你预设的、能够接收格式化数据并(理想情况下)输出可渲染Echarts图表的工具。

  • 输入变量 (以饼图为例):

    • 标题: {{转换数据节点输出.unpacked_title}}
    • 数据: {{转换数据节点输出.unpacked_data}}
    • 分类: {{转换数据节点输出.unpacked_labels}}
  • 输出: 这些插件的输出应该是Dify可以直接渲染的图表格式(例如,包含 echarts ... 的文本)。

Image

Image

Image

2.10 不需要图表LLM分析

如果最初判断用户问题不需要图表,工作流会进入这个分支。

这里我们用一个LLM节点,根据用户的问题和“执行SQL”节点返回的(TEXT格式)查询结果,用自然语言生成一段简洁的文字回答。

Image

提示词如下:

请根据用户问题和查询结果,用简洁的中文自然语言回答。
用户问题:{{#sys.query#}}
查询结果:{{#context#}}

注意查询结果中票房数据不用换算,原数据展示,单位为万元

2.11 回复节点

这是工作流的终点,负责将生成的结果(无论是图表还是文字回答)展示给用户。

你需要配置此节点,使其能够正确接收并展示来自不同分支的输出。

Image

2.12 开场白设置

在Dify应用的“提示词编排”或“开场白”设置中,你可以设计一个友好的欢迎语和一些示例问题,引导用户开始提问。

点击预览按钮,找到右下角“管理”:

Image

点击编写开场白。

Image

设置开场白和开场问题。

Image

3 测试

测试生成3种格式的图表及无需生成图表的问题。

1、饼图测试。测试问题:各导演的票房占比是多少?

Image

可以看一下工作流具体是怎么工作的?

自然语言转SQL:

Image

转换数据:最后给图表插件传递的参数。

Image

2、折线图测试。测试问题:各导演的票房占比是多少?

Image

3、柱形图测试。测试问题:评分最高的五部电影。

Image

4、普通问题测试,无需生成图表,直接回答。

Image

通过Dify工作流的巧妙搭建,我们成功地让数据可视化助手学会了“聆听”。

自然语言转SQL,再到Echarts图表,一切都那么自然而高效。

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

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

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

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

dify + agent +知识库构建自然语言转sql查询Postgresql数据库 dify+agent+知识库构建自然语言转sql查询Postgresql数据库 阅读详情

相关推荐

Dify实现自然语言生成SQL并执行

Dify实现自然语言生成SQL并执行

伏颜的博客 6381

小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例

dify小白使用echarts组件教程

开源AI 专属 UI——papyrai-ui。《千界明彻录》(故事形式构建元思维)——胡说小说。更多思辨内容在公众号。 1万+

开口即图!我用Dify+数据库+Echarts搭建了一个能“听懂”人话的数据可视化助手!(含自然语言转SQL)

用户用大白话提问 -> 工作流智能判断是否需要图表及图表类型 -> 将用户问题转化为SQL语句 -> 执行SQL查询数据库 -> 将查询结果处理成图表所需格式 -> 调用相应的Echarts图表插件生成图表 -> (如果不需要图表)LLM总结数据并回复。

呱牛 Just do IT 1267

【Dify实战】基于Dify+数据库+Echarts搭建了一个能“听懂”人话的数据可视化助手!(含自然语言转SQL)

今天我将手把手带你利用dify的工作流编排能力和大型语言模型(LLM),搭建一个能“听懂”我们自然语言指令,自动查询数据库、判断图表类型,并最终生成酷炫Echarts图表的数据可视化助手!

youmaob的博客 2964

Dify Chatflow 零代码实战:5分钟搭建自然语言转SQL+可视化看板(附数据库适配技巧)

本文详细介绍了如何使用Dify Chatflow在5分钟内搭建自然语言转SQL+可视化看板的零代码解决方案。通过实战案例和数据库适配技巧(如MySQL和PostgreSQL的配置优化、字段注释规范等),帮助业务人员快速实现数据查询与可视化,提升工作效率。特别适合产品经理、运营人员和业务分析师使用。

weixin_30836759的博客 412

拒绝难看!Echarts助阵Dify,统计图给你好看~

Dify +Echarts ,AIBI必备~ 1、提取Excel数据表格 2、执行代码加工数据 3、Echarts统计图展示

luckcxy的专栏 1万+

【喂饭教程】手把手教你用Dify+数据库+ECharts搭建能“听懂人话”的数据可视化助手,建议收藏!!

你是否曾幻想过,面对复杂的数据,不再需要手动编写繁琐的SQL,不再需要费力选择图表类型,只需像和助手对话一样,轻松说出你的数据分析需求,精美的图表便能自动呈现在眼前?

datian1234的博客 1276

RuoYi(分离版) 使用代码生成器添加子模块(idea版)

文章目录准备一、使用代码生成器1.数据库2.导入表并生成代码二、导入代码文件1.新建一个模块2.导入zip代码文件3.模块环境配置添加菜单和访问地址总结 准备 前提要把系统启动起来,部分教程可以参考这边文章若依框架RuoYi前后端分离项目导入IDEA及运行启动 但是完全参考这篇文章还是不能把项目启动起来,因为这篇文章没有说明数据库。 我是用的是本地数据库,采用xampp+Navicat的组合来部署和访问数据库。打开Navicat,连接并创建数据库ry-vue并导入数据脚本ry_20191008.sql,q

dream_coke的博客 1万+

【人工智能-agent】--Dify+Mysql+Echarts搭建了一个能“听懂”人话的数据可视化助手!

Dify+Mysql+Echarts搭建了一个能“听懂”人话的数据可视化助手!

我是个好人呀,O(∩_∩)O 2052

SpringBoot实现电子发票生成

电子发票是近年来比较流行的一种票据形式,它取代了以往传统的纸质发票,具有减少纸张浪费、方便有效查验等优点。本文将介绍如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。在本文中,我们介绍了如何使用Spring Boot和Vue.js构建一个仿真电子发票生成应用程序,借助微信二维码扫描功能和第三方库,实现用户扫描二维码获取发票信息并填写相关开票信息,最后生成电子发票。

不愧是暮言的博客 6092

保姆级教程:用ESP32和SPH0645麦克风做个无线录音笔(附Python服务端实时播放)

本文提供了一份详细的ESP32无线录音笔开发指南,涵盖从硬件搭建到Python服务端实时回放的全过程。通过SPH0645麦克风采集高质量音频数据,利用ESP32的I2S接口和WiFi功能实现无线传输,并结合Python服务端实现实时播放和WAV文件保存,适合远程音频监控和创意交互装置开发。

weixin_30700099的博客 643

【转】用Dify+数据库+Echarts搭建一个能“听懂”人话的数据可视化助手!(含自然语言转SQL)

本文介绍如何利用Dify平台搭建智能数据可视化助手,实现自然语言查询自动生成图表。通过工作流编排和大型语言模型(LLM),系统能自动将用户提问转换为SQL语句,查询数据库后智能判断图表类型并生成Echarts图表。文章详细讲解了从数据准备、工作流搭建到最终测试的全过程,包括自然语言转SQL、数据格式化处理、图表类型判断等关键环节。该方案支持柱状图、折线图和饼图三种常见图表类型,也支持无需图表时的文字回答。通过实际案例演示,展现了如何让数据分析变得智能化、自然化,让用户只需用自然语言提问即可获得直观的数据可视

时光清浅处,一步一安然 642

基于eBPF和LSM的强制文件访问控制系统架构设计和实现

本文介绍了一种基于 eBPF 与 Linux 安全模块(LSM)实现的强制文件访问控制系统。该系统利用 eBPF 的高性能和动态加载能力以及 LSM 的系统调用拦截功能,提供了灵活且强大的文件访问控制策略。文章详细描述了系统的设计思路、架构组成、关键代码实现及错误处理方式。通过用户空间程序与内核态 eBPF 程序的协作,实现了对文件操作的实时监控和控制,支持动态更新安全策略而无需重启系统。此外,文中还讨论了未来可能的扩展方向,如增加更多 hook 点、集成其他安全模块以及性能优化等。

Linux内核研究者 1839

Dify+数据库+ECharts打造数据可视化图表,让数据自己说话!

厌倦了盯着冰冷、枯燥的数据却找不到重点? 想象一下,只需简单几步,这些数据就能变身为令人惊艳的炫酷图表,瞬间抓住所有人的眼球! 释放数据的真正潜力,用 Echarts 让你的数据“活”起来,讲述它自己的故事。 图表作为一种直观、高效的数据呈现方式,能够化繁为简,让冰冷的数据焕发活力,帮助我们更好地理解和分析信息。 下图是Echarts官网上各种图表示例,是不是还挺炫酷的。

嘴巴吃糖了 3274

STM32MP157+AD7606BSTZ四通道IEPE传感器控制器实战(附电路图)

本文详细介绍了基于STM32MP157和AD7606BSTZ的四通道IEPE传感器控制器设计实战,涵盖硬件架构、数据采集芯片对比、关键电路设计及信号处理算法。通过双核协同工作和优化算法,实现高精度振动监测与故障诊断,适用于工业机械状态监测等场景。

weixin_29171129的博客 367

【系列05】端侧AI:构建与部署高效的本地化AI模型 第4章:模型量化(Quantization)

量化的基本思想是减少模型中用于表示参数和激活值的比特数。在模型训练时,参数通常使用32位浮点数(FP32)进行存储,这提供了高精度,但也消耗大量的内存和计算资源。量化则将这些32位浮点数转换成低比特数表示,通常是8位整数(INT8)。量化的原理可以概括为:对浮点数范围进行校准,并将其映射到更小的整数范围内。例如,将一个FP32的权重(如-1.5到1.5)映射到INT8的范围(-128到127)。在推理过程中,模型将使用这些低精度的整数进行计算,从而大大减少了所需的计算量。量化带来的主要收益减少模型大小。

学习,输出==》再学习再输出 1214

Dify+数据库+Echarts终极避坑指南!从自然语言到炫酷图表,一篇文章解决你90%的难题!

Dify+数据库+Echarts终极避坑指南!从自然语言到炫酷图表,一篇文章解决你90%的难题!

kaka0722ww的博客 2191

微信小程序一键跳转公众号(使用 official-account 组件)

在当今移动互联网时代,用户体验已成为应用成功的关键因素之一。微信小程序作为一种便捷的应用形式,广泛应用于各个行业,为用户提供了丰富的服务和信息。然而,如何进一步提升用户体验,使其在小程序中能够更方便地获取相关信息,成为开发者需要关注的重要课题。实现一键跳转到公众号的功能,正是一个有效的解决方案。通过这一功能,用户可以轻松访问公众号,获取更多内容和服务,从而增强与品牌的互动和粘性。本文将详细介绍如何在微信小程序中实现这一功能,并提供相关的操作步骤和注意事项。

不迁怒,不贰过。小知识,大智慧。 3127

基于Dify+数据库+Echarts搭建的数据可视化助手(含自然语言转SQL)

基于Dify+数据库+Echarts搭建的数据可视化助手(含自然语言转SQL)

wangwei的博客 217

Open3D 点云DBSCAN聚类算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,能够识别任意形状的聚类,并处理噪声数据。

纵马踏花向自由 1833

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

使用Dify,通过自然语言生成图表

G在左,M在右 3282

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

本文介绍了基于Dify平台实现Text2SQL(自然语言转SQL)工作流的方法。Text2SQL技术允许用户通过自然语言提问直接查询数据库,无需掌握SQL语法。工作流包含多个关键步骤:1.配置对话开场白引导用户;2.获取系统时间辅助查询;3.使用LLM模型将自然语言转换为SQL语句;4.通过SQLExecute工具执行查询;5.用ECharts生成可视化图表。文章详细说明了数据库连接配置技巧(如特殊字符处理)、SQL语句生成方法(借助AI工具)以及测试数据的创建流程,并提供了完整的SQL脚本示例。该方案适用

Q2024107的博客 2346

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

基于Dify和Echarts的自然语言数据可视化系统开发实践

数据可视化技术通过将复杂数据转化为直观图表,显著提升信息传达效率。其核心原理在于数据映射与视觉编码,将抽象数字转换为可感知的图形元素。现代可视化系统结合自然语言处理(NLP)和数据库技术,实现从用户需求到可视化结果的端到端自动化。Echarts作为主流可视化库,提供丰富的图表类型和交互功能,而Dify平台则简化了AI能力的集成。这类技术在商业智能(BI)、运营监控等场景价值显著,尤其适合非技术用户快速获取数据洞察。本文详细介绍的解决方案创新性地融合Dify工作流与Echarts可视化,通过自然语言转SQL模

weixin_34233974的博客 227
上一篇: 【Qwen2.5大模型微调实战】医疗命名实体识别(NER)任务(附完整代码)
下一篇: AI大模型不再是博士生的高端局,教授开源大模型核心代码,看完直接起飞!
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值