探秘 Dify:用模型提示词打造标准 SQL,解锁智能问数无限可能
重要提醒:现在是初步达成了我们的目标,本篇文章仅是提供了一套应用知识库的形式对数据库的结构和业务关系进行描述,然后结合模型生成语句并查询数据库直接出结果的思路,如果让我们的知识库和模型配合完全正确一点错误没有仍需不断优化提示词,甚至更新知识库描述,增加提问限定词等,让我们的智能体达到应用的目的。这里边我遇到最多的问题:数据库表的名字,表中的字段名字,知识库中的必须和数据库中的表的名字,字段,关系字

大家好,欢迎莅临中码AI晓铺,让我们一起学习讨论软件开发相关技术知识,把握技术前沿,学习AI应用技巧,畅聊技术人生吧!依托公众号载体,我已探索实战智能体智能问数形成系列合集,技术干货分享已成合集,欢迎大家关注点赞。
言归正传,我在我的上一篇“Dify-和模型做知心朋友、技术搭子”技术文章中,实现了通过知识库的形式让模型真正理解我们设定的数据库表结构,数据表之间的关系,我们今日实现通过模型提示词生成标准SQL,并依托数据库查询工具查询出数据库中的数据,解锁问数无限可能。本文Dify相关DSL文件会放到资料下载里边,自己导入Dify测试验证效果,加深印象,迸发自己的灵感。
一、为了验证生成的SQL到底能不能用,我们应用MYsql数据库创建表及在表中增加数据。按照知识库中的描述我们进行建表,表关系我们在数据库不用增加,我们将表及表中数据全部做好准备。
知识库中的内容如下:

四张数据库表的数据如下:大家自己看下表之间的关系,票房表通过导演字段与导演表关联,导演表中的民族和性别用编码存储数据,最终中文名称需要关联字典进行展示。




二、我们设定几个问题。我们带着以下三个问题开始Dify探索之旅。
(一)单表查询生成是否准确?
(二)两表关联查询是否准确?
(三)多表联合查询赋值是否准确?
三、打开Dify直接拖入LLM模型节点,开始编排模型提示词。选定模型,在SYSTEM中加入要求描述,在USER加入模型提示及限定词。关于限定词大家自己在操作的时候可以去除增加看下效果,有时候模型还是存在幻觉的,生成的SQL语句带前缀影响执行。

四、我们加入直接回复输出节点,开始预览调试。这里边我遇到最多的问题:数据库表的名字,表中的字段名字,知识库中的必须和数据库中的表的名字,字段,关系字段的名称必须一致,否则生成的SQL是生成了,在数据库中查询的时候会报错。大家自己在操作的时候尽量采用复制黏贴的方式执行,我因为字段不一致反复重复做了很多遍知识库的创建。我们按照三个问题直接提问验证效果,根据生成结果,基本按照我们的目标实现了。

五、按照三个问题,加入“SQL查询工具”直接输出查询结果验证情况。

六、我们直接上最终效果视频。我们依托上边提到的三个问题,采用渐进式方式验证,验证模型是不是理解我们的意思了,是不是按照我们的意图生成语句并查询结果。
通过视频我们验证了三个问题,经到数据库核查,数据结构均是准确的。首先,单个票房表查询统计妥妥没有问题,其次票房表和导演表的表名称和字段,模型准确的生成了,根据知识库导演字产生了关联查询了导演的出生地;最后通过四表关联查询查询了导演的总票房、关联导演表查询了导演的性别和民族。我们的目的达到了。
重要提醒:现在是初步达成了我们的目标,本篇文章仅是提供了一套应用知识库的形式对数据库的结构和业务关系进行描述,然后结合模型生成语句并查询数据库直接出结果的思路,如果让我们的知识库和模型配合完全正确一点错误没有仍需不断优化提示词,甚至更新知识库描述,增加提问限定词等,让我们的智能体达到应用的目的。
欢迎留言讨论,如果对我的分享有触动即时关注我吧,关注我即送送30+人工智能资料,到联系作者自行下载查看吧!同时我的智能探索实战做了合集可以继续通过下方合集引导继续查看我其他的智能探索实战文章。

更多推荐


所有评论(0)