DeepSeek+Dify打造数据库查询专家

0.用Dify+DeepSeek打造智能查询

本文介绍用Dify+DeepSeek实现根据语义结合业务智能生成sql的demo

上期链接

1.准备数据

我这里准备的是一个聊天的基础sql做测试

表的信息为

  • 下面贴了个测试的基础表结构(两个表一个用户信息;一个聊天信息)注意表的信息内容最好包含注释
  • 我这里贴的是个表结构也可以也可以是其他形式的数据结构,需要自己描述清晰。(当然后面还需要不断的进行调试
  • 对于表结构的合理性我们这里暂且不进行讨论。(你可以人为这里只是个智能语义生成sql的一个测试样例
  • 目的是能能够测试实现单表和连表的智能查询,并且是生成的sql能够在数据库中跑
  • 当然实际应用中还需要考虑的一个关键问题是数据的权限问题应该怎么处理?
  • 对于大数据量的问题我们可以暂且使用分页处理
  • 有个sql的生成我们就可以考虑做些其他事情了,例如让一个不懂数据库SQL的用户也可以得到Sql自主进行数据查询;或者一个智能展示的报表

测试表结构(mysql)

sql 复制代码
-- -----------------------------------------
-- 用户信息表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS CHAT_USER (
	ID               VARCHAR(32) DEFAULT (replace(uuid(),'-','')) PRIMARY KEY comment '主键',
    USER_CODE        VARCHAR(32)  UNIQUE comment '用户代码',
    USER_NAME        VARCHAR(50) comment '用户昵称',
    USER_EMAIL       VARCHAR(100) comment '用户邮箱',
    USER_PHONE       VARCHAR(32) comment '用户电话',
    USER_IMAGE_PATH  VARCHAR(200) comment '用户图片地址',
    USER_PASSWORD    VARCHAR(50) comment '用户密码',
    USER_SEX	     VARCHAR(1) comment '用户性别 0:男,1:女',
    USER_STATUS      VARCHAR(2) comment '用户状态-1:注销,0:离线,1:在线',
    USER_CREATE_DATE TIMESTAMP DEFAULT (SYSDATE()) comment '创建时间'
);
##GOGO;

insert into CHAT_USER (ID, USER_CODE, USER_NAME, USER_EMAIL, USER_PHONE, USER_IMAGE_PATH, USER_PASSWORD, USER_SEX, USER_STATUS, USER_CREATE_DATE)
values ('AAB872D0612C44E5B33AC7BEA6C9D1BF', 'admin', '管理员', null, null, null, '6c5de1b510e8bdd0bc40eff99dcd03f8', null, '0',SYSDATE());
##GOGO;

-- -----------------------------------------
-- 用户信息发发送表
-- -----------------------------------------
CREATE TABLE IF NOT EXISTS CHAT_MSG (
	ID                VARCHAR(32) DEFAULT (replace(uuid(),'-','')) PRIMARY KEY comment '主键',
    CHART_CMD         VARCHAR(2) comment '状态0未发送 1已发送 -1删除',
    -- 状态字段目前看有些用不了的
    CHART_STATUS      VARCHAR(2) comment '1.绑定上线 2.下线 3.单聊 4.群聊 5.获取用户信息 6获取群组用户信息',
    CHART_FROM_ID     VARCHAR(32) comment '发送用户ID',
    CHART_FROM_CODE   VARCHAR(32) comment '发送用户CODE',
    CHART_FROM_IP     VARCHAR(50) comment '发送用户IP',
    CHART_ACCEPT_ID   VARCHAR(32) comment '接收用户ID',
    CHART_ACCEPT_CODE VARCHAR(32) comment '接收用户CODE',
    CHART_ACCEPT_IP   VARCHAR(50) comment '接收用户IP',
    CHART_GROUP_ID    VARCHAR(32) comment '群组ID',
    CHART_GROUP_CODE  VARCHAR(32) comment '群组CODE',
    CHART_MSG         VARCHAR(500) comment '发送信息',
    CHART_DATE        TIMESTAMP DEFAULT (SYSDATE())  comment '创建时间' 
);
##GOGO;

2.在dify中我们需要处理的

建立知识库

知识库分段看自己需求

  • 这里我直接用了##GOGO;进行标记;也可以用别的(我暂且想的是一段一段sql进行分割处理的
  • 建立好知识库后我们就可以在聊天或者agent中可以直接引用当前的知识库;让AI依据知识库内容进行回复
  • 知识库的分段内容我现在还不太确定要如何才能最合适的处理(因为第一次的调试总是不够准确

建立agent

  • 1.关联到自己的知识库
  • 2.输入sql限制的的提示词准确的指出相关的信息
  • 3.对内容进行调试(这里我试过oracle的和mysql的 第一次回答基本上字段名字都有点问题)
  • 4.调试的时候要对AI准确的给出它错误的地方,对字段名字进行修正
  • 5.这里测试了单表的查询和两个表的关联插叙修正后基本可以正确的输出

第一个图不太清楚这里补充下

测试了下只是没数据

标注功能记得使用上篇有提到

最后提示记得使用标注功能,因为标注是对已经处理过的满意内容才进行的,有助于快速得到准确和满意的回复
公众号:冒泡的肥皂

相关推荐
Blossom.1182 分钟前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
DFminer1 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
郄堃Deep Traffic2 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划
GIS小天2 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
阿部多瑞 ABU2 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
cnbestec3 小时前
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
人工智能·线性代数·触觉传感器
不爱写代码的玉子3 小时前
HALCON透视矩阵
人工智能·深度学习·线性代数·算法·计算机视觉·矩阵·c#
sbc-study3 小时前
PCDF (Progressive Continuous Discrimination Filter)模块构建
人工智能·深度学习·计算机视觉
EasonZzzzzzz3 小时前
计算机视觉——相机标定
人工智能·数码相机·计算机视觉
猿小猴子3 小时前
主流 AI IDE 之一的 Cursor 介绍
ide·人工智能·cursor