Vanna大火?数据库对话机器人让数据分析变得更简单、RAG+AI 生成 SQL、轻松实现数据库对话

技术

Aitrainee | 公众号:AI进修生

🤖 与您的 SQL 数据库聊天 📊。使用 RAG 通过 LLM 进行准确的文本到 SQL 生成 🔄。

Github:https://github.com/vanna-ai/vanna

Hi,这里是Aitrainee,欢迎阅读本期新文章。

大家好,LLMS 的一个重要应用是能够用自然语言查询和与数据库交互,提取见解。 Vanna AI 是一个开源的 Python 库,专门用于这种功能。通过 Vanna AI,我们可以将数据库与自然语言查询连接起来,并生成相应的 SQL 查询,从而在数据库中执行这些查询并获取结果。这一过程还提供了 SQL 查询的验证功能,以确保结果的准确性。

picture.image

▲ Vanna 的工作原理

Vanna AI 正在不断开发中,并且越来越受欢迎。它的工作原理是一个两步过程:首先,我们需要训练一个模型,这个模型包含我们所知道的关于数据库的所有信息,例如 DDL 语句、文档以及示例 SQL 语句。这些信息会被嵌入并存储在向量数据库中,这是一个一次性的过程。

picture.image

▲ Vanna 的工作分为两个简单的步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,这些问题将返回可设置为在您的数据库上自动运行的 SQL 查询。

一旦模型训练完成,我们就可以提出问题,系统会为问题创建嵌入,然后进行向量相似搜索,以找到相似的嵌入。这些相似的嵌入用于生成 SQL 查询,并在数据库中执行以获得结果。我们可以通过这种方式得到想要的数据或图表。

这里有一个详细的图示,说明了在训练模型后如何工作。我们收集了所有相关的 DDL 文档和 SQL 查询,并将它们存储在向量存储中。提出问题后,会生成与问题相关的嵌入,并与向量存储中的嵌入进行比较,找出相似的嵌入。然后将问题和上下文信息传递给 LLM,生成 SQL 查询并执行,以获得结果。

picture.image

如果得到的结果正确,这意味着生成的 SQL 查询是正确的。我们可以将这个查询和生成的 SQL 添加回向量存储中,从而使模型随着时间的推移对数据库的了解越来越多,并且提供更准确的结果。

从总体上看,Vanna AI 系统需要两个组件:用于存储数据库信息的向量存储和用于生成 SQL 查询的 LLM。我们可以通过简单的 PIP 安装来安装 Vanna AI 库,连接模型和数据库,并生成查询。

我们今天使用 Vanna 提供的内置演示模型进行演示。首先,我们连接到一个模型和数据库,看看数据库的架构。这个示例数据库是一个音乐商店,包含员工、客户、发票和艺术家等相关信息,共有 11 个表。使用 SQL Alchemy 直接连接数据库,并提取表名。

picture.image

在使用 Vanna AI 时,我们只需导入库,连接模型和数据库,然后就可以开始提问了。例如,我们询问销量最高的前五位艺术家,生成的 SQL 查询涉及多个表,最终得到了正确的结果和一个图表。

picture.image

Vanna 还提供了一个本地主机界面,可以运行示例查询并生成相应的结果和图表。结果可以下载为 CSV 文件。

picture.image

总结一下,一旦我们有了数据库,我们需要训练一个模型并连接数据库和模型,然后就可以开始提问了。下一个视频将展示如何连接我们自己的数据库并训练模型。谢谢大家。

主要思想提取:

    1. Vanna AI 是一个开源的 Python 库,可以用自然语言查询和与数据库互动。
    1. 该库将自然语言问题转换为 SQL 查询,并执行这些查询。
    1. 使用 Vanna AI 的流程包括两步:训练模型和使用模型进行查询。
    1. 训练模型时,将数据库相关的信息(如 DDL 语句、文档、示例 SQL 语句)嵌入并存储在向量数据库中。
    1. 查询时,Vanna AI 生成 SQL 查询,并在数据库中执行以获取结果。
    1. 结果可以是数据或图表,如果查询正确,结果会被添加回向量数据库,以提高模型的准确性。
    1. Vanna AI 系统需要两个组件:向量存储和用于生成 SQL 查询的 LLM。
    1. 使用示例展示了如何安装和使用 Vanna AI 库,连接模型和数据库,并生成查询。

希望这篇文章对你有帮助,感谢阅读!

视频 教程

https://www.youtube.com/watch?v=VRNPeis0tA4

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

picture.image

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论