从零到一,用 Dify 打造 NL2SQL


从零到一,用 Dify 打造 NL2SQL

近期 AI 大火,朋友圈很多都在晒成果。我也禁不住尝试,使用dify这一开发平台做了第一个 AI 应用。整体感觉下来还是非常方便的,也是由于Dify的出现大大降低了构建 AI 应用的门槛,相信未来真的可以解放人的双手,让 AI 帮助我们解决更多的问题。


1. Dify 是什么

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
1).部署Dify
Dify 提供本地源码部署和Docker Compose两种方式,这里选择后者比较简单一些。前提条件如下

从零到一,用 Dify 打造 NL2SQL安装步骤也比较简单,只需要几步

从零到一,用 Dify 打造 NL2SQL
当看到如下提示时,代表启动成功了,并可通过浏览器来访问

从零到一,用 Dify 打造 NL2SQL
从零到一,用 Dify 打造 NL2SQL
2).配置Dify
在使用 Dify 之前,需要先配置大模型供应商。Dify 目前已支持主流的模型供应商,例如 OpenAI 的 GPT 系列、Anthropic 的 Claude 系列等。不同模型的能力表现、参数类型会不一样,你可以根据不同情景的应用需求选择你喜欢的模型供应商。当然也可以自建,接入本地的大模型。在 Dify 中,按模型的使用场景将模型分为以下 4 类

从零到一,用 Dify 打造 NL2SQL
如下图是自己做的配置,使用到了DeepSeek和通义千问

从零到一,用 Dify 打造 NL2SQL


2. 示例:打造NL2SQL

下面通过Dify做个示例,演示使用自然语言来查看数据库中的数据。
1).需求分析
根据我们的诉求,通过自然语言来访问数据库,这里我们来分解下需求,大致可分为几个阶段
  • 用户用自然语言方式输入查询需求
  • 由知识库将查询需求与库内元信息整合
  • 使用LLM来分析并给出SQL描述
  • 将SQL发送给数据库执行
2).创建应用
开始前,我们先确定应用类型;Dify里可以创建多类应用,用户可根据自身需求来选择。这里根据需求,选择使用Chatflow

从零到一,用 Dify 打造 NL2SQL
3).构建知识库
需要将数据库的字典信息整理为知识库,为后续LLM使用打好基础。Dify里支持多种构建知识库的方式,这里使用了最为简单的通过本地文件来构建。实践中,这里走了一些弯路,摸索了一下可通过注释信息构造出知识库文件然后导入。例如下图黄框就是根据表结构信息整理出来的

从零到一,用 Dify 打造 NL2SQL
在Dify中导入生成知识库,这方面没有太多经验,反复尝试了几次

从零到一,用 Dify 打造 NL2SQL
4).LLM 处理逻辑
LLM 节点是 Chatflow/Workflow 的核心节点。该节点能够利用大语言模型的对话/生成/分类/处理等能力,根据给定的提示词处理广泛的任务类型,并能够在工作流的不同环节使用。也是整个流程中最为核心的节点,其可完成下面功能

从零到一,用 Dify 打造 NL2SQL
这里是使用LLM节点,完成推导SQL语句的过程。核心点在于为对话生成高质量的指导,这里参考了网上的实现做了微调。顺便说一句,不同模型的能力还是存在差异,Dify提供了一次针对多个模型的联调能力,可对比选择最为合适的模型。

从零到一,用 Dify 打造 NL2SQL
5).组件和数据处理
除了上述核心节点外,需求中还描述需要实行数据库,这里直接引用第三方的工具,直接在Dify中安装即可。Dify中已经支持了非常丰富的工具可供使用。这里单独安装了数据库查询工具。

从零到一,用 Dify 打造 NL2SQL
此外,在实践中还是发现从LLM中输出的SQL文本,不能直接使用,仍然存在一些冗余字符需要处理下,因此也引用了代码执行逻辑,其可以执行如Python、JavaScript的脚本来处理数据

从零到一,用 Dify 打造 NL2SQL
6).工作流绘制
最终我们把整个逻辑串起来,从开始、知识检索、语句生成、文本微调、语句查询、反馈结果多个步骤,通过上下文关联起来。Dify中是可以支持复杂工作流关系,包括如分支、判断、循环等等。这个流程比较简单,串行执行就可以。

从零到一,用 Dify 打造 NL2SQL
7).效果展示
整个流程绘制完毕后,可以调试运行,都没问题后发布即可。简单测试下

从零到一,用 Dify 打造 NL2SQL
针对每次问题,都是调用工作流,在调试部分可以直观看到每个步骤的完成情况,如有错误可参考输出修改

RAG技术前沿技术新闻资讯

基于 Gemini 和 NebulaGraph 构建知识图谱问答系统

2026-4-30 13:34:08

前沿技术新闻资讯知识图谱

官宣,Milvus SDK v2发布!原生异步接口、支持MCP、性能提升

2026-4-30 14:02:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索