NL2SQL 对于堆 table schema ,在表结构太复杂的时候无法控制上下文长度,且 schema 太多了,依靠大模型来写 sql ,非常容易答非所问或者错误 sql 。 semantic layer (下称 SL )基本上成为了让大模型写出 sql 准确的唯一实现路径。
SL 也不算是一个特别新概念,从好理解的角度来解释:SL 对于 NL2sql 的意义,相当于传统 BI 的指标平台指标层。
大家都知道要做 SL ,做在哪里呢?
1 、snowflake 的方案是做在 db 上,db 级原生支持 SL 创建。https://docs.snowflake.com/en/user-guide/views-semantic/overview 2 、google alloydb ,data agent 方案 https://docs.cloud.google.com/alloydb/docs/ai/natural-language-landing
1
haloandspike 7h 1m ago
之前做过知识图谱,跟这个场景比较类似,在 gpt-4 的时间点,我们的方案是做了一个 NL2SQL 的例子库,把用户 q 召回 NL2SQL 的例子,给模型参考改写。现在我理解模型的 coding 能力很强,而且上下文窗口很大,还会遇到改写准确率低的问题吗?
|
2
haloandspike 7h 1m ago
https://spike.wiki/post/how-we-built-chatbot-with-kg
之前技术方案 |