终于分享完了dify的基础知识了,那么我们马上就要进入实战了,接下来我们要进行讲解的是数据库相关的场景操作。那么我们基础的业务需求呢是需要方便企业员工操作查询食堂食物价格等或者企业员工的资料查询等操作,那我们马上就开始

效果展示

1.首先先来介绍一下用到的节点

database

这个插件可以在插件市场下载到

然后在里面要进行数据库URI的配置,之前在这里有填写URI的格式但是现在好像不见了,那我把之前配置的给大家mysql做一个参考

mysql+pymysql://数据库名:数据库密码@数据库地址:数据库端口号/数据库表名

之前还有其他数据库的配置方式大家可以去搜一下,这里要提醒大家数据库一定要和dify部署的位置相同假设你把dify部署在本地那么数据库地址可以用本地,如果是部署在服务器上的话记得把数据库地址部署在服务器上。

这下面就是配置后拥有的功能

2.连接问题分类器

这一步的作用是,如果需要连接多个场景那么就可以使用问题分类器,在分类里面设置关键词,像我这次需要展示搜索的是订单和食堂

节点展示如下

3.连接database插件

连接之后选择Get Table Schema,可以获取到数据库里面的表结构,然后让ai来编写数据库的查询语句,这样会更加准确,我之前有看到用知识库存取数据库表结构但是这个方法比较固定而且如果数据库表更新没有办法跟着实时变动,这个方法就进行了优化使数据库保持实时性。

这里查询两个表所以下面的DB URI需要选填增加新的URI来连接新的数据库,就跟上文提到的URI是一个东西大家填写之后切换数据库表名就可以

4.连接LLM节点

这里连接LLM节点是用来编写数据库语句,大家可以选择好的模型写的数据库语句就会更加精确但是也是会存在数据库语句生成不正确的情况,ai存在幻觉。

这里我把提示词放在这里供大家参考,大家可以自己修改或者ai润色

你是一个MySQL专家,严格根据提供的

表结构和字段信息以及用户输入的 {

查询需求,生成准确、高效、语法兼容的SQL语句。

# 硬性要求

1. 仅使用

中提供的表名和字段名,禁止添加任何未明确声明的字段或表

2. 确保SQL完全兼容MySQL 5.7及以上版本语法

3. 输出必须是一条可直接执行的完整SQL语句,禁止包含任何注释、解释或中间过程

4. 支持单表查询、多表关联(JOIN/LEFT JOIN/INNER JOIN等)、子查询等复杂查询

5. 正确处理表间关联关系,使用明确的ON条件指定关联字段

6. 包含必要的WHERE条件、GROUP BY、HAVING、ORDER BY和LIMIT子句(当需求需要时)

7. 表名和字段名必须使用原始名称,禁止使用别名替换或翻译

8. 仅输出最终SQL文本,不要包含任何额外字符、提示或格式

# 特别注意

- 当涉及多表关联时,必须明确指定关联条件

- 确保SELECT的字段在对应表中存在

- 使用参数化查询风格处理变量值(如WHERE id = ?)

- 保持SQL语句的简洁性和高效性

5.连接SQL EXECUTE节点

也是在工具中的database里面的节点之一,然后要记得将上一个LLM节点传递的数据库语句给这个节点进行查询。

6.连接LLM节点格式化结果

获取中的数据,进行格式化,字符编码规则为utf-8,只展示结果,不展示别的内容,只展示格式化后的数据

这个就是将数据进行格式化输出更加好看一些最后回复节点输出LLM的格式化结果就得到效果了。

后面还会有新的更新数据库2.0会更加完整加入更新的操作大家要是对这个工作流有任何的疑问可以私信我或者在评论区问我会尽我所能给大家解释,回答。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐