DeepSeek+Dify打造数据库查询专家修正(一)
公众号:冒泡的肥皂
由于最近刚尝试用AI做些demo,我想在准确性做些尝试的时候发现对有些内容理解不到位,导致可能有点误导。这里先做点修正。
上篇文章:DeepSeek+Dify打造数据库查询专家
上篇文章的一些问题
agent关联知识库的一些问题
agent直接关联知识库回答好像没限定在上下文(知识库)中
- 上篇文章的效果,我后来做测试想了下可能有三点让我认为这种方式有效果
- 我在提示词里面声明了表的名称
- 我对大模型给我的回答我对它指出了问题(例如字段名的正确性)
- 大模型的学习能力很强通过我得纠正给了我满意的回答
agent我感觉是配合工具来用的(这点等我了解后了再写篇笔记
先直接用聊天的应用测试生成sql的效果
- 步骤很简答创建个空白的聊天引用,引入之前的知识库(分段最好一个表内容一段)
- 通过效果查看再字段准确性上有很大的提高
- 下图用的知识库还是上篇文章中那两个表的内容
补充下关于多表的问题
- 1.再提示词中指出表与表中的关联性
- 2.或者再知识库中进行指出
- 3.我目前添加的关联语句提示词这样写的感觉效果挺好的(其他方式也可以自己试下
-CHAT_MSG.CHART_FROM_ID can be left joined with CHAT_USER.ID
-CHAT_MSG.CHART_ACCEPT_ID can be left joined with CHAT_USER.ID
关于是否引入知识库问题
- 如果内容不太多则可以直接把内容写道提示词里面
- 如果不借助表结构下面这样写也可以;但我认为直接贴表结构会对工作量会减轻一点(因为建表语句业务都会写的)。
- 当然也可以用类似下面这段内容直接贴在提示词里面,不用知识库的上下文,或者这种方式的文档也是可以的
表名:CHAT_USER 用户信息表
字段:ID VARCHAR(32) 主键,USER_CODE VARCHAR(32) 用户代码,USER_NAME VARCHAR(50) 用户名称,USER_EMAIL VARCHAR(100) 邮箱,USER_PHONE VARCHAR(32) 用户电话,USER_IMAGE_PATH VARCHAR(200) 用户头像地址,USER_PASSWORD VARCHAR(50) 用户密码,USER_SEX VARCHAR2(1) 用户性别 0:男,1:女,USER_STATUS VARCHAR(2) 用户状态-1:注销,0:离线,1:在线,USER_CREATE_DATE TIMESTAMP 创建时间
#############
表名:CHAT_MSG 用户信息发送表
字段:ID VARCHAR(32) 主键,CHART_CMD VARCHAR(2) 状态0未发送 1已发送 -1删除,CHART_FROM_ID VARCHAR(32) 发送用户ID,CHART_FROM_CODE VARCHAR(32) 发送用户CODE,CHART_FROM_IP VARCHAR(50) 发送用户IP,CHART_ACCEPT_ID VARCHAR(32) 接收用户ID,CHART_ACCEPT_CODE VARCHAR(32) 接收用户CODE,CHART_ACCEPT_IP VARCHAR2(50) 接收用户IP,CHART_GROUP_ID VARCHAR(32) 群组ID,CHART_GROUP_CODE VARCHAR(32) 群组CODE,CHART_MSG VARCHAR(500) 发送信息,CHART_DATE TIMESTAMP 创建时间
#############
-CHAT_MSG.CHART_FROM_ID can be left joined with CHAT_USER.ID
-CHAT_MSG.CHART_ACCEPT_ID can be left joined with CHAT_USER.ID
这里补充下知识库单独的测试(召回测试
- 知识库是可以直接做测试的
- 做测试可以根据情况进行调整检索方式的
- 这个召回测试你可以理解为查询数据匹配情况做的测试
- 知识库内容可能有些关键字没有被添加索引我们可以手动进行添加的
测试的效果图