7.3K Stars!Text2SQL还不够?试试更精准的RAG2SQL开源工具

SQL 是查询数据库的关键,但如何高效地构建满足个人需求的 SQL 语句呢?随着 AI 大模型的进步,我们现在已经拥有了 Text2SQL 的技术,这一技术已被多款产品广泛应用。
今天,我们要向大家介绍一个开源项目—Vanna。它在 Text2SQL 的基础上进行了升级,融入了 RAG 技术以进一步提升准确度,使得 SQL 生成更为精准和智能。
在这里插入图片描述

Vanna 介绍

Vanna 是一个开源的基于大模型和 RAG 的 Text2SQL 工具,Vanna 通过结合RAG 框架、大语言模型、高质量的训练数据、持续优化能力、广泛的数据库支持以及开源定制化的特点,实现了在复杂数据集上的高精度表现。

使用 Vanna 可以使用任何的大模型、任何的向量数据库、任何的前端,和任何的关系数据库交互。

在这里插入图片描述
Vanna 的工作流程如下所示:
在这里插入图片描述
Vanna 的工作分为两个简单步骤:首先,在您的数据上训练一个 RAG “模型”,然后提出问题,系统将返回 SQL 查询,这些查询可以被设置为在您的数据库上自动运行。

  • 第一、在您的数据上训练一个 RAG “模型”。

  • 第二、提出问题(Prompt)。
    在这里插入图片描述
    Vanna 提供三种灵活的模式,以满足不同用户的需求。

  • 开源模式
    在这种模式下,你可以自由地集成你偏爱的任何大语言模型,实现高度的个性化定制。
    就像是在玩积木,随心所欲地搭建你的数据世界。

  • 免费模式
    我们提供有限额度的大模型使用和免费的存储空间。
    利用 GPT 3.5 的强大功能,你无需任何费用即可开始你的数据探索之旅。

  • 付费模式
    如果你需要更强大的功能和更高的灵活性,我们将提供无限制的使用权限,包括 GPT-4 的支持以及优质的服务保障。
    在这里插入图片描述

如何使用 Vanna ?

你可以从多个途径开始使用 Vanna,包括:Jupyter Notebook、Slackbot、Web 应用或 Streamlit等。同时,您也可以轻松地将 Vanna集成到您自己的Web 应用中。

如果您只是希望快速体验一下 Vanna 的功能,我们提供了已经训练好的在线大模型和配套的向量数据库供您使用。而最简单快捷的体验方式,就是通过 Colab notebook 来感受 Vanna 的独特魅力。
在这里插入图片描述
要使用 Vanna,您需要先注册一个 Vanna 账号(https://vanna.ai/),以便获取必要的 API 密钥。

在这里插入图片描述

# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI + ChromaDB

from vanna.openai.openai_chat import OpenAI_Chat
from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore

class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
    def __init__(self, config=None):
        ChromaDB_VectorStore.__init__(self, config=config)
        OpenAI_Chat.__init__(self, config=config)

vn = MyVanna(config={'api_key': 'sk-...', 'model': 'gpt-4-...'})

# See the documentation for other options

接下来我们来做一个案例演示

第一步、提问

vn.ask("What are the top 10 customers by sales?")

第二步、得到生成的 SQL

SELECT c.c_name as customer_name,
        sum(l.l_extendedprice * (1 - l.l_discount)) as total_sales
FROM   snowflake_sample_data.tpch_sf1.lineitem l join snowflake_sample_data.tpch_sf1.orders o
        ON l.l_orderkey = o.o_orderkey join snowflake_sample_data.tpch_sf1.customer c
        ON o.o_custkey = c.c_custkey
GROUP BY customer_name
ORDER BY total_sales desc limit 10;

第三步、数据库执行返回结果

在这里插入图片描述
第四步、得到一个自动生成的图表
在这里插入图片描述

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名技术极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值