赞
踩
SQL 是查询数据库的关键,但如何高效地构建满足个人需求的 SQL 语句呢?随着 AI 大模型的进步,我们现在已经拥有了 Text2SQL 的技术,这一技术已被多款产品广泛应用。
今天,我们要向大家介绍一个开源项目—Vanna。它在 Text2SQL 的基础上进行了升级,融入了 RAG 技术以进一步提升准确度,使得 SQL 生成更为精准和智能。
Vanna 是一个开源的基于大模型和 RAG 的 Text2SQL 工具,Vanna 通过结合RAG 框架、大语言模型、高质量的训练数据、持续优化能力、广泛的数据库支持以及开源定制化的特点,实现了在复杂数据集上的高精度表现。
使用 Vanna 可以使用任何的大模型、任何的向量数据库
、任何的前端,和任何的关系数据库交互。
Vanna 的工作流程如下所示:
Vanna 的工作分为两个简单步骤:首先,在您的数据上训练一个 RAG “模型”,然后提出问题,系统将返回 SQL 查询,这些查询可以被设置为在您的数据库上自动运行。
第一、在您的数据上训练一个 RAG “模型”。
第二、提出问题(Prompt)。
Vanna 提供三种灵活的模式,以满足不同用户的需求。
开源模式
在这种模式下,你可以自由地集成你偏爱的任何大语言模型,实现高度的个性化定制。
就像是在玩积木,随心所欲地搭建你的数据世界。
免费模式
我们提供有限额度的大模型使用和免费的存储空间。
利用 GPT 3.5 的强大功能,你无需任何费用即可开始你的数据探索之旅。
付费模式
如果你需要更强大的功能和更高的灵活性,我们将提供无限制的使用权限,包括 GPT-4 的支持以及优质的服务保障。
你可以从多个途径开始使用 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;
第三步、数据库执行返回结果
第四步、得到一个自动生成的图表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。