Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一款热门的开源sql生成AI框架—Vanna

一款热门的开源sql生成AI框架—Vanna

作者头像
山行AI
发布于 2024-01-23 12:39:08
发布于 2024-01-23 12:39:08
4.6K02
代码可运行
举报
文章被收录于专栏:山行AI山行AI
运行总次数:2
代码可运行

Vanna

Vanna 是一款采用 MIT 许可的开源 Python RAG (检索增强生成)框架,用于生成 SQL 语句和相关功能。

vannaquadrants

如何使用 Vanna

Vanna 的使用分为两个简单步骤 - 在你的数据上训练一个 RAG "模型",然后提出问题,该问题将返回可设置为自动在你的数据库上运行的 SQL 查询。

1.在你的数据上训练一个 RAG "模型"。2.提问

如果你不知道什么是 RAG,不用担心 -- 你不需要知道这是如何在底层工作的。你只需要知道你需要“训练”一个模型,它会存储一些元数据,然后你可以用它来“提问”。

更多底层工作细节请参见基类[1]。

用户界面

这些是我们使用 Vanna 构建的一些用户界面。你可以直接使用这些界面,或者作为你自己定制界面的起点。

•Jupyter Notebook[2]•vanna-ai/vanna-streamlit[3]•vanna-ai/vanna-flask[4]•vanna-ai/vanna-slack[5]

入门

具体内容请参见文档[6],了解有关你想要的数据库、LLM 等的具体信息。

如果你想在训练后了解它是如何工作的,你可以尝试这个Colab 笔记本[7]。

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install vanna

有许多可选的包可以安装,具体请参见文档了解更多细节。

导入

如果你正在定制 LLM 或向量数据库,请参见文档。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import vanna as vn

训练

根据您的具体用例,您可能需要或不需要运行这些 vn.train 命令。更多细节请参阅文档[8]。

这些说明旨在让您了解其工作原理。

使用 DDL 语句训练

DDL 语句包含有关你的数据库中表名、列、数据类型和关系的信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vn.train(ddl="""
    CREATE TABLE IF NOT EXISTS my-table (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        age INT
    )
""")

使用文档训练

有时你可能想要添加有关你的业务术语或定义的文档。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vn.train(documentation="Our business defines XYZ as ...")

使用 SQL 训练

你还可以向你的训练数据中添加 SQL 查询。这在你已经有一些查询并希望直接从编辑器中复制粘贴以生成新的 SQL 时非常有用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")

提问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vn.ask("What are the top 10 customers by sales?")

如果你连接到了数据库,你将得到以下表格:

CUSTOMER_NAME

TOTAL_SALES

0

Customer#000143500

6757566.0218

1

Customer#000095257

6294115.3340

2

Customer#000087115

6184649.5176

3

Customer#000131113

6080943.8305

4

Customer#000134380

6075141.9635

5

Customer#000103834

6059770.3232

6

Customer#000069682

6057779.0348

7

Customer#000102022

6039653.6335

8

Customer#000098587

6027021.5855

9

Customer#000064660

5905659.6159

你还会得到一个自动生成的 Plotly 图表:[9]

RAG 与精调 (Fine-Tuning) 对比

RAG:

•可以跨 LLM 使用•容易移除过时的训练数据•运行成本比精调低得多•更具未来性 -- 如果出现更好的 LLM,你可以直接替换

精调 (Fine-Tuning):

•如果你需要在提示中最小化令牌数量,这是个好选择•开始使用较慢•训练和运行成本较高(通常情况下)

为什么选择 Vanna?

1.在复杂数据集上的高准确性。•Vanna 的能力与你提供的训练数据相关•更多的训练数据意味着在大型和复杂的数据集上有更好的准确性2.安全且私密。•你的数据库内容永远不会发送给 LLM 或向量数据库•SQL 执行发生在你的本地环境中3.自我学习。•如果通过 Jupyter 使用,你可以选择在成功执行的查询上“自动训练”•如果通过其他界面使用,你可以让界面提示用户对结果提供反馈•正确的问题到 SQL 对会被存储以供将来参考,使未来的结果更加准确4.支持任何 SQL 数据库。•该包允许你连接到任何你可以通过 Python 连接的 SQL 数据库5.选择你的前端。•大多数人从 Jupyter 笔记本开始。•通过 Slackbot、Web 应用、Streamlit 应用或自定义前端向你的最终用户展示。

扩展 Vanna

Vanna 设计用于连接任何数据库、LLM 和向量数据库。有一个 VannaBase 抽象基类定义了一些基本功能。该包提供了与 OpenAI 和 ChromaDB 一起使用的实现。你可以轻松地扩展 Vanna 以使用你自己的 LLM 或向量数据库。更多细节请参见文档[10]。

引用

更多信息请参考:https://github.com/vanna-ai/vanna

References

[1] 基类: https://github.com/vanna-ai/vanna/blob/main/src/vanna/base/base.py [2] Jupyter Notebook: https://github.com/vanna-ai/vanna/blob/main/notebooks/getting-started.ipynb [3] vanna-ai/vanna-streamlit: https://github.com/vanna-ai/vanna-streamlit [4] vanna-ai/vanna-flask: https://github.com/vanna-ai/vanna-flask [5] vanna-ai/vanna-slack: https://github.com/vanna-ai/vanna-slack [6] 文档: https://vanna.ai/docs/ [7] Colab 笔记本: https://colab.research.google.com/github/vanna-ai/vanna/blob/main/notebooks/getting-started.ipynb [8] 文档: https://vanna.ai/docs/ [9] : https://github.com/vanna-ai/vanna/blob/main/img/top-10-customers.png [10] 文档: https://vanna.ai/docs/ [11] 完整文档: https://vanna.ai/docs/ [12] 网站: https://vanna.ai/ [13] 支持用的 Discord 群组: https://discord.gg/qUZYKHremx

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山行AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
汀丶人工智能
2024/04/16
3.2K0
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
Vanna 离线环境部署
Vanna[1] 是一个 MIT 许可的开源 Python RAG(Retrieval-Augmented Generation)框架,可以用来以对话形式与 SQL 数据库交互。
AlphaHinex
2024/06/11
2.6K2
Vanna 离线环境部署
使用上下文策略极大提高AI SQL 准确性
拥有一个能够回答商业用户简单的语言问题的自主人工智能智能体的承诺是一个有吸引力的提议,但迄今为止仍难以实现。许多人尝试过让 ChatGPT 进行写入,但成效有限。失败的主要原因是大语言模型对其要求查询的特定数据集缺乏了解。
大数据杂货铺
2024/03/11
6830
使用上下文策略极大提高AI SQL 准确性
AI驱动TDSQL-C Serverless 数据库技术实战营-Vanna配合ollama分析TDSQL-C Serverless 数据库
经过这么长时间的迭代,大模型种类繁多,使用也越来越简单了,今天我们使用Vanna配合ollama本地大模型,基于TDSQL-C MYSQL Serverless构建智能数据库分析系统
用户11291471
2024/10/08
4590
Vanna:一个便捷的SQL数据库交互工具
1月17日 消息:Vanna是一个为用户提供更便捷地与SQL数据库交互的工具。它通过允许用户使用自然语言来查询数据库,然后将这些语言转换成SQL语句,从而实现数据库信息的查询和获取。
半夜喝可乐
2024/09/30
3400
Vanna:一个便捷的SQL数据库交互工具
SQL Assistant:Streamlit 中的文本到 SQL 应用程序
在本文中,我们将探索Vanna.ai的应用,这是一个Python 库,专门用于训练能够处理自然语言问题并生成 SQL 查询作为响应的模型。此实现将集成到 ✨Streamlit 应用程序中,创建一个 🤖 聊天机器人,方便提出问题并为返回的查询提供解释。
大数据杂货铺
2024/01/31
1.9K0
SQL Assistant:Streamlit 中的文本到 SQL 应用程序
从一张数据表谈起
今年年初,我基于一份记录去年消费情况的 CSV 格式表格,使用 Cursor 代码生成工具,根据我的需求生成了 Python 代码,成功分析了去年的年度消费情况,过程清晰且高效。如今,半年过去了,更多的基于大模型的产品层出不穷,近期 MCP(Model Context Protocol)备受关注,各厂商也积极适配自身工具,提供相应的 MCP Server 服务。
dsy
2025/05/19
570
介绍一些好玩且实用的开源的AI工具
随着人工智能技术的迅猛发展,开源社区涌现出了许多关于AI的项目,这些项目不仅展示了技术的创新力,也为开发者提供了丰富的工具和资源。本文将介绍几个既有趣又实用的开源人工智能工具,它们不仅能够帮助你加深对人工智能技术的理解,还能在实际应用中大显身手。
星哥玩云
2024/07/03
9940
介绍一些好玩且实用的开源的AI工具
danswer——一键构建私人本地知识库的最佳选择之一
danswer是一款支持使用自然语言提问并获得私人来源支持的答案的AI应用。可以连接到Slack、GitHub、Confluence等工具。
山行AI
2023/09/08
2.4K0
danswer——一键构建私人本地知识库的最佳选择之一
# 强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!
随着chatgpt等大型语言模型(LLM)能力越来越强大,如何将这些模型精准地应用于特定垂直领域,让各行业开发者快速利用LLM赋能也成为热点和痛点。众所周知,LLM在处理超出其训练数据或涉及最新实事时,常会产生“幻觉”现象,简单理解就是会出现一本正经的胡说八道,回答不准确。针对此问题,RAG通过从外部知识库检索相关文档作为上下文输入到LLM有效地减少了生成内容不符合实际的情况。
OpenIM
2024/05/19
9180
Lumos——一款由大模型Ollama提供的本地LLM浏览网页Chrome扩展
春节在家,翻了很多优秀的AI开源项目,这里选几款和大家分享一下。Lumos是一款由本地LLM驱动(也就是大模型本地布署),用于浏览网页的RAG LLM协助工具。
山行AI
2024/02/26
3.1K0
Lumos——一款由大模型Ollama提供的本地LLM浏览网页Chrome扩展
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
汀丶人工智能
2024/04/12
1.2K0
NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL
GenAI——LLM结合图谱RAG和LangChain实战指南
GenAI 栈将帮助你迅速开始构建自己的GenAI应用。演示应用可以作为灵感来源或起点。在技术博客文章[19]中了解更多详情。
山行AI
2023/12/29
4.1K1
GenAI——LLM结合图谱RAG和LangChain实战指南
构建优秀LLM应用的四大要点
在 OpenAI 发布其第一个 ChatGPT 模型一年之后,对生成式 AI 的兴趣爆炸式增长。大语言模型(LLM)驱动的应用程序现在成为企业思考生产力和效率的前沿。用于构建生成式 AI 应用程序的工具和框架也得到了极大的扩展。但是人们还是担心生成式 AI 输出的准确性,开发人员需要快速学习如何处理这些问题,以构建强大且值得信赖的应用程序。
云云众生s
2024/03/28
2650
LlamaIndex——与LangChain类似但更专注于数据处理的LLM框架
LlamaIndex(前身为GPT Index)是一种用于LLM应用程序摄取、结构化和访问私有或领域特定数据的数据框架。
山行AI
2023/09/27
13.1K0
LlamaIndex——与LangChain类似但更专注于数据处理的LLM框架
基于LangChain的优秀项目资源库
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业,LangChain是从事AI应用开发的人员或多或少都会接触到的框架。LangChain是一个令人惊叹的框架,可以在极短的时间内完成LLM项目,其生态系统正在快速发展。
山行AI
2023/06/26
3K0
基于LangChain的优秀项目资源库
LangChain 学习路线图:从入门到实战的完整指南
在大型语言模型(LLM)如 ChatGPT、Claude 等快速发展的今天,开发者不仅希望能“使用”这些模型,还希望能将它们灵活集成到自己的应用中,实现更强大的对话能力、搜索增强问答(RAG)、工具调用(Tool Calling)、多轮推理等功能。
IT蜗壳-Tango
2025/04/08
1.3K0
用 LangChain 构建文档问答助手
随着大语言模型(LLM)的广泛应用,越来越多企业和个人希望利用它来实现“基于文档的智能问答”功能。例如:
IT蜗壳-Tango
2025/04/09
1820
机器学习周刊 第4期:基于ChatGPT API的Android语音助手
这个《动手实战人工智能 Hands-on AI》写的相当不错,作者用 Jupyter Notebook编写了这个教程,参考了《机器学习方法》,《深度学习入门》,西瓜书,花花书等,剖析和推导每一个基础算法的原理,将数学过程写出来了,同时基于 Python 代码对公式进行实现,做到公式和代码的一一对应。
Ai学习的老章
2024/01/04
3400
机器学习周刊 第4期:基于ChatGPT API的Android语音助手
RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐
MaxKB = Max Knowledge Base,是一款基于 LLM 大语言模型的开源知识库问答系统,旨在成为企业的最强大脑。它能够帮助企业高效地管理知识,并提供智能问答功能。想象一下,你有一个虚拟助手,可以回答各种关于公司内部知识的问题,无论是政策、流程,还是技术文档,MaxKB 都能快速准确地给出答案:比如公司内网如何访问、如何提交视觉设计需求等等
汀丶人工智能
2024/08/05
12K0
RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐
推荐阅读
相关推荐
NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验