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