dify案例分享-0 代码搭建 Text2SQL 智能查询!用 Dify + 知识库 + Agent 实现自然语言秒变 SQL

1.前言

Text2SQL(或称NL2SQL)是一种自然语言处理技术,旨在将自然语言(Natural Language)问题转化为关系型数据库中可执行的结构化查询语言(Structured Query Language,SQL),从而实现对数据库的查询和交互。这项技术的核心目标是通过自然语言描述,无需用户具备SQL语法知识,即可完成复杂的数据库查询任务

具体来说,Text2SQL的任务包括以下步骤:

  1. 1. 输入分析:用户以自然语言形式输入问题,例如“查找平均工资高于整体平均工资的部门名称”。

  2. 2. 语义解析:系统将输入的自然语言问题解析为数据库中的结构化查询语句。

  3. 3. SQL生成:根据解析结果生成对应的SQL语句,如“SELECT department_name FROM departments WHERE average_salary > (SELECT AVG(salary) FROM employees)”。

  4. 4. 执行与反馈:系统执行SQL查询并返回结果,同时可能对结果进行进一步的解释或分析。

Text2SQL的应用领域广泛,包括智能客服、数据分析、金融、医疗、教育等,能够显著提高用户与数据库交互的效率和便利性。此外,随着大型语言模型(LLMs)的发展,Text2SQL技术在处理复杂查询和多轮对话方面也取得了显著进展。

前期也给大家介绍过关于dify整合数据库实现图表生成的案例,同样也给大家实现过dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

有小伙伴和提出问题SQL 是写到大模型的提示词里面,如果想查询其他的语句,之前的工作流text2sql的方案就有问题。是的当时为了方便演示所以我们做了3个业务场景,并且把SQL 语句都已经提前写好了。当时的目的主要还是给大家提供演示方便,因为考虑到很多非技术人员对SQL 语句的编写是不熟悉的。此外目前的主流的text2sql方案也有不成熟的的。今天就带大家实现一个简单基于企业知识库的 AI Agent 的text2sql方案。当然这个方案也是属于比较简单的方案。话不多说下面带大家看一下效果。

工作流AI Agent演示效果

image-20250423165316892

 

上图我们就通过简单的自然语言查询到student_scores 有多少条记录。

AI Agent 演示效果

image-20250423165540692

 

同样我们使用AI Agent 也实现了text2SQL 的效果。

那么上面的工作流和 AI Agent是如何实现的呢,下面说一下我们的具体实现思路。

2.工作流的制作

在工作流制作之前我们需要用到dify的知识库,之前我很少提到知识库,主要是dify知识库做的不太好。因为这个工作流用到知识库,所以我们顺便把这个知识点说一下。

知识库创建

在知识库创建之前我们需要向量模型,所以我们需要在系统模型设置里面填写一下 向量模型。

打开右上角设置-模型供应商

image-20250423170131896

 

我们在找一下右上角有一个系统模型设置。

image-20250423170211470

 

在弹开的模型设置里面,我把Embedding 模型、Rerank 模型 设置选一下。

image-20250423170324449

 

这里Embedding 模型 我们选择了火山引擎提供的 “doubao-embeding”,Rerank 模型 我们这里选择硅基提供的bge-reanker-v2-m3

上面配置好完成我们去知识库面板创建一个知识库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军哥说AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值