大模型在技术上 能 / 怎么 实现比较准确的数据库查询 吗/呢 ?

87 天前
 p1nk

背景

领导给了个任务,在本地配置一个 deepseek 大模型,然后构建公司内部的知识库、连接公司内部的数据库,实现领导和员工对访问需求。 现在上述三个任务都已经实现了,但是在对接数据库查询这块有很大问题。

问题

在将提示词(包含任务要求、数据表信息)和用户给到模型之后,模型给出的 sql 语句,十次有七次是直接无法执行的,基本就是语法有问题(常见错误 order by 、to_char 等等),再有三次就是和表结构有冲突,无法执行。

尝试

我尝试根据它 sql 的错误语法再加提示词,但是问题是越来越多的提示词再加上需要告知的表结构,提示词都快把可输入最长 token 占满了,而且提示词也不是百分百有效(比如我告诉它不要使用任何 order by ,但是还是输出...)

疑惑

我一开始就怀疑这件事是否可行,现在变得严格怀疑这件事是否可行。
表结构很简单的话我尝试过没有任何问题,可以做到百分百不出错,但是一旦企业的表结构极其复杂各种嵌套,在这种情况下还一定要用自然语言生成需要精准执行的 SQL 语句,我严格怀疑能做到么?
希望是我的技术水平不够,能有大佬帮我解解惑

7340 次点击
所在节点    程序员
78 条回复
leonhao
87 天前
你需要先把表结构转化成简单的结构,现在的 AI 还没这么智能,题外话,随便应付一下领导得了,反正无法上线,这个场景现阶段就是个玩具
mumbler
87 天前
我们团队能做到,找我们合作啊
ferock
87 天前
写那么多提示词就差自己写 sql 教 ai 了
Varsion13
87 天前
可以换一个思路(目前我们是这么做的)

开放 API 给 AI ,喊 AI 根据对话内容直接请求对应的 API ,然后展示 Response
elron
87 天前
text2sql 很常见的技术啊
sunmacarenas
87 天前
可以看下 ragflow 里的 DB Assistant 这个 Agent
p1nk
87 天前
@leonhao #1 我也是这么觉得,得让数据库同事弄个简单的表出来,别整那么复杂。而且说这么多到头来也是给自己和别的同事找工作,还不一定有成效...

@Varsion13 #4 大佬这个思路好厉害,确实是一个方法我琢磨琢磨

@elron #5 我指的是对于复杂的表结构和问题,模型不能生成正确的 sql
XG9H3BN7CWMMmnjw
87 天前
我觉得是无法做到百分百准确,最多接近正确答案
daodao
87 天前
你说的这个需求 是现在大模型落地最常见的应用场景。。。
sunny352787
87 天前
这不就是 MCP 吗?你搭一个 MCP 服务让 AI 调用就好了
hmxxmh
87 天前
最早可以用 function call,现在都是 mcp
hefish
87 天前
不能把机器当人使。。。。

同理,也不能把人当机器使。。。
p1nk
87 天前
@sunmacarenas #6

@sunny352787 #10

@hmxxmh #11

感谢大佬,我研究一下。
我一直在弄 function call ,敢情都有 mcp 了。一直瞎造轮子😂
sayoko
87 天前
可以参考下这个库,只试用过 https://github.com/vanna-ai/vanna
XG9H3BN7CWMMmnjw
87 天前
@p1nk #13 楼主最靠谱的就是用 MCP 参考 4 楼说的,生成 sql 都是白扯
ChoiYoonJung
87 天前
除了 mcp 什么的,如果一定想要用大模型生成 sql 直接用,可以参考 dify 工作流的方式,加一个节点让大模型去校验 sql 并给出修改意见,然后根据修改意见再改一版
MRlaopeng
87 天前
大佬这个咋实现的 (构建公司内部的知识库、连接公司内部的数据库,实现领导和员工对访问需求)
super452
87 天前
要是这个需求能落地,sqlboy 的末日就到了 hh
hhyyd
87 天前
很难哎,应该把大模型更多当人来看,就像一个新入职的员工,直接让他按 XXX 口径取 XXX 数据, 他不知道数据不知道业务,很容易取错。


就算带了两年给训练成熟练工了,取相同的数据也很难一口气写个 100%对的 sql 。更别说业务的迭代了
skyemin
87 天前
@Varsion13 请教一下 ai 现在可以直接请求 api 吗,怎么实现的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1124121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX