Dify实战:零SQL,用自然语言提问即可查询
告别繁琐的SQL编写,通过自然语言轻松实现数据库查询,Dify让数据交互变得零门槛! 核心内容: Dify自然语言转SQL的架构与工作原理 测试数据库搭建与只读账户配置 数据库插件安装及Agent应用配置步骤 无需Navicat、不用编写SQL,只需提问即可获取结果;今天我们将使用Dify搭建一个自
告别繁琐的SQL编写,通过自然语言轻松实现数据库查询,Dify让数据交互变得零门槛!
核心内容:
- Dify自然语言转SQL的架构与工作原理
- 测试数据库搭建与只读账户配置
- 数据库插件安装及Agent应用配置步骤
无需Navicat、不用编写SQL,只需提问即可获取结果;今天我们将使用Dify搭建一个自然语言数据库查询助手。
01 功能演示与效果预览
自然语言转SQL的架构原理

工作流程十分简洁:用户提出问题,AI将其转换为SQL语句,随后执行数据库查询,最后将结果返回给用户。
02 前期准备与环境搭建
开始之前需要完成两项任务:准备一个测试数据库,并安装所需的插件。
2.1 搭建测试数据库
为便于演示,我们创建一个简单的产品表,执行以下SQL语句:
-- 创建测试数据库
CREATE DATABASE IF NOT EXISTS dify_demo;
USE dify_demo;
-- 创建产品表
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) COMMENT '产品名称',
category VARCHAR(50) COMMENT '产品分类',
price DECIMAL(10,2) COMMENT '价格',
stock INT COMMENT '库存数量',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 插入几条测试数据
INSERT INTO products (name, category, price, stock) VALUES
('机械键盘', '外设', 299.00, 150),
('游戏鼠标', '外设', 89.00, 300),
('4K显示器', '显示设备', 1999.00, 50),
('降噪耳机', '音频', 499.00, 80),
('无线充电器', '配件', 99.00, 200);
数据库表创建完成。

2.2 配置只读数据库账户
建议使用只读账户,即使AI生成错误SQL,也能避免数据被误删或修改。
-- 创建一个只能查询的账号
CREATE USER 'dify_reader'@'%' IDENTIFIED BY '你的密码';
GRANT SELECT ON dify_demo.* TO 'dify_reader'@'%';
FLUSH PRIVILEGES;

2.3 安装数据库连接插件
Dify插件市场提供了现成的数据库连接工具。登录Dify后,依次点击顶部导航栏的「插件」→「插件市场」。

搜索「Database」或「MySQL」。
安装数据库连接插件。
装完后,插件会出现在插件列表里。
2.4 配置数据库连接参数
插件安装完成后,返回Agent应用编排页面,在「工具」区域点击「添加」,选择刚安装的database插件。
配置数据库连接URI:
我的Dify部署在VMware虚拟机上,192.168.1.2是本地Windows电脑的IP。
mysql+pymysql://dify_reader:123456@192.168.1.2:3306/dify_demo
数据库连接配置完成。
03 创建Agent应用
3.1 创建新应用
点击「工作室」→「创建空白应用」,在应用类型中选择「Agent」。
将应用名称设置为「SQL查询助手」,点击创建。
3.2 选择大语言模型
选择已配置好的大语言模型,本示例使用的是DeepSeek。
3.3 编写系统提示词
将以下代码复制到「提示词」输入框中:
你是一个 SQL 查询助手。用户会用自然语言提问,你需要根据数据库表结构生成 SQL 并查询。
## 数据库表结构
products 表:
- id: 产品ID (INT)
- name: 产品名称 (VARCHAR)
- category: 产品分类 (VARCHAR),可选值:外设、显示设备、音频、配件
- price: 价格 (DECIMAL)
- stock: 库存数量 (INT)
- created_at: 创建时间 (DATETIME)
## 规则
1. 根据用户问题,生成对应的 SQL 查询
2. 只生成 SELECT 查询,禁止 UPDATE、DELETE、INSERT
3. 查询结果用自然语言回复用户
4. 如果用户问题与数据库无关,礼貌告知无法回答
## 示例
用户问:最贵的产品是什么?
回复:最贵的产品是「4K显示器」,价格 1999 元。
用户问:库存低于100的有哪些?
回复:以下产品库存低于100:4K显示器(50件)、降噪耳机(80件)。
以上为单表示例,多表场景请参考第06节。
3.4 添加工具组件
在「工具」区域,从database插件列表中选择并添加「Text to SQL」和「SQL Execute」两个工具。
完成后点击右上角的「发布」按钮。
04 效果测试与验证
测试一:基础查询
查询:产品列表有哪些?
测试二:条件筛选查询
查询:库存低于100的产品有哪些?
测试三:聚合函数查询
查询:最贵的产品是什么?
测试过程中若遇到问题,不必担心,以下是常见问题及解决方法。
05 常见问题与解决方案
1. 无法连接MySQL,提示权限拒绝
请检查以下两项配置:
- Windows防火墙是否已开放3306端口。
- MySQL是否已允许远程连接。
-- 查看用户允许的访问来源
SELECT user, host FROM mysql.user;
-- 如果dify_reader的host是localhost,改成%
UPDATE mysql.user SET host = '%' WHERE user = 'dify_reader';
FLUSH PRIVILEGES;
2. 认证方式不兼容错误
MySQL 8默认使用caching_sha2_password认证插件,pymysql不支持该方式,需执行以下命令修改:
ALTER USER 'dify_reader'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
3. AI未调用工具而直接生成答案
系统提示词中未明确指示AI使用工具,需在指令中添加以下内容:
当用户问数据库相关问题时,你必须使用Text to SQL和SQL Execute工具来查询,不能自己编造答案。
06 多表场景的处理方法
以上演示仅涉及单张表,且提示词中硬编码了表结构。若数据库包含数十甚至上百张表,手动写入所有结构显然不现实,此时需要动态获取表结构。
database插件提供了「Get Table Schema」工具,能够自动读取数据库中所有表的字段结构,无需手动编写。
6.1 添加Get Table Schema工具
返回Agent编排页面,在「工具」区域勾选「Get Table Schema」工具。
6.2 更新系统提示词
将「提示词」框中的内容替换为以下代码:
你是一个 SQL 查询助手。用户会用自然语言提问,你需要查询数据库并返回结果。
## 工作流程
1. 先用Get Table Schema工具获取数据库中的所有表结构
2. 根据用户问题,找到相关的表
3. 用Text to SQL生成SQL语句
4. 用SQL Execute执行查询
5. 用自然语言回复用户
## 规则
- 只生成SELECT查询,禁止UPDATE、DELETE、INSERT
- 如果用户问题与数据库无关,礼貌告知无法回答
这样便无需手动书写表结构,AI将自动查询数据库获取最新结构信息。
接下来我们向数据库中添加两张新表。
6.3 重新测试
重新发布应用后再次进行测试。
查询:数据库里有哪些表?
查询:数据库里有哪些表?仅返回表名即可。
07 总结与回顾
回顾本文的主要步骤:
- 准备测试数据库及示例数据表。
- 创建只读数据库账户以确保安全。
- 安装database插件并配置数据库连接。
- 创建Agent应用,编写系统提示词,添加工具组件。
- 验证自然语言查询效果。
- 多表场景优化:使用Get Table Schema动态获取表结构。
今后查询数据,无需打开Navicat、无需手动编写SQL,只需直接提问即可。
本方案的核心要点:
为AI提供充分的上下文信息,并配备正确的工具,即可实现通过自然语言查询数据库。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Dify实战:零SQL,用自然语言提问即可查询要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点Llama3模型架构与Llama2一致,核心提升来自数据工程:预训练数据量达15Ttoken,为Llama2的7倍,并优化数据质量与混合比例。算力需求激增,万卡H100集群成标配。Meta同时采用RoCE和InfiniBand网络方案,并重点改进了容错与故障恢复机制,训练效率提升约三倍。
AI金融助手Zocks与海托华独家合作,通过隐私保护技术自动化会议准备等行政事务,使顾问每周节省超10小时;Jump与信安顾问合作,以自主AI自动化手动流程,提升效率。二者均旨在用AI替代重复低附加值任务,推动金融服务行业加速拥抱智能化。
在Vidu中制作老式蒸汽火车怀旧视频需三步:先通过文生图生成带“静止画面”关键词的静帧;再用图生视频或文本重试让火车以“步行速度”缓行;最后用CapCut叠加蒸汽滤镜、调整LUT并导出为高比特率H 264以强化氛围与质感。
博通凭借730亿美元AI积压订单及106%的半导体收入增长,被列为2026年克劳德AI首选。其Tomahawk6交换机创下订单纪录,角色已超越芯片供应商,转向为超大规模企业提供定制硅芯片与集成网络解决方案。
- 日榜
- 周榜
- 月榜
热点快看
