概述

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, 若结不符合预期,重新再来一次。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐