SQL Agent架构 NL2SQL
·
概述
SQL Agent的作用就是将自然语言,转成sql语句,然后执行得到结果,又叫NL2SQL。
其中主要的问题是大模型不知道数据库结构,但企业的数据库信息又不能暴露出去。
就需要将企业数据库信息以提示词的形式发送给大模型。
其中会有个最大的问题: 这个问题涉及哪些表,这些表的关系是什么,如何让大模型理解一些特定的统计术语?
实现步骤
schema检索
如果从问题中找到schema信息,有两种实现方式
prompt版:
通过prompt将用户问题与schema信息都提交给大模型,让大模型输出相关的表。
RAG版:
提取数据库的schema信息embedding后存到向量数据库,将用户问题embedding后在向量数据库进行相似度匹配,得到一组schema
schema连接
从DB中查询出schema相关的主键、外键、关联关系,将schema根据关系连接。
知识库
从知识库中查询出与用户问题相关联的计算公式。
知识库的实现可以用embedding,也可以用db。
如产品A今年与去年,环比增长多少。 其中环比增长需要一个具体的公式。
SQL生成
将以上信息,通过prompt发送给大模型,大模型输出sql。 对输出的sql,进行语法检查,如果存在问题,重新生成。
对于有微调能力的企业,最好是微调一个,本地部署,可以更适应自身业务的sql,减少token消耗。
模型集群:
比如微调多个模型,每个模型负责sql的各个部分,提高专业性,以及提高速度
SQL执行
执行SQL, 若结不符合预期,重新再来一次。
更多推荐


所有评论(0)