河曲智叟 发表于 2024-6-9 13:32:10

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介、安装、利用方法之具体攻略


目录
Vanna的简介
1、用户界面
2、RAG vs. Fine-Tuning
3、为什么选择Vanna?
4、扩展Vanna
Vanna的安装和利用方法
1、安装
2、练习
(1)、利用DDL语句练习
(2)、利用文档练习
(3)、利用SQL练习
3、提问标题
Vanna的应用案例
1、底子用法




Vanna的简介

https://img-blog.csdnimg.cn/direct/95f6322448434677a63130c1fe4bc379.png
Vanna是一个基于MIT许可的开源Python RAG(检索加强天生)框架,用于SQL天生和相关功能。
Vanna的工作原理分为两个简朴步调:在您的数据上练习一个RAG“模型”,然后提问标题,这将返回可以设置自动在您的数据库上运行的SQL查询。
>> 在您的数据上练习一个RAG“模型”。
>> 提问标题。
https://img-blog.csdnimg.cn/direct/074ed51829e843e99ea81bfd660b7b3c.png
如果您不知道什么是RAG,不用担心 - 您不必要知道在底层怎样工作就能利用它。您只必要知道您必要“练习”一个模型,它会存储一些元数据,然后用它来“提问”标题。
检察基类以获取有关底层工作原理的更多具体信息。
Vanna.AI是一个基于语言模型的SQL代理,允许用户通过简朴的自然语言标题获得数据库中的洞察信息。它提供开源的Python包以及各种前端集成方式,可以部署在本身的底子设施上运行。
>> 体系的正确性取决于提供的练习数据量和质量,更多的数据可以支持复杂数据集提高正确率。
>> 用户数据库内容不会发送到语言模型,只有架构、文档和查询信息存储在元数据层中,从保障数据安全性。
>> 利用越多,模型通过不停增长练习数据会连续提升,实现自我学习效果。
>> 支持许多常见数据库如Snowflake、BigQuery、Postgres,也可以通过连接器支持任意数据库。
>> 提供免费版和付费版两种计划,区别在于查询限定和语言模型版本的不同。
>> 该体系强调以开源方式提供,保障数据安全并支持定制化部署是其一大卖点。
GitHub地点:https://github.com/vanna-ai/vanna
文档地点:Vanna Docs: How It Works



1、用户界面

这是我们利用Vanna构建的一些用户界面。您可以直接利用它们,或将它们作为自界说界面的出发点。


2、RAG vs. Fine-Tuning

RAG
微调
可在LLMs之间移植
如果数据变得过时,可以轻松删除练习数据
比微调更便宜
更具未来性 - 如果有更好的LLM出现,可以轻松更换
如果必要最小化提示中的标记,可以选择微调
启动较慢
练习和运行费用昂贵(一般情况下)



3、为什么选择Vanna?

在复杂数据集上具有高正确性
Vanna的能力与您提供的练习数据密切相关。
更多的练习数据对于大型和复杂数据集的正确性更有资助。
安全和私密
您的数据库内容永远不会发送到LLM或向量数据库。
SQL执行发生在您的本地情况中。
自学习
如果通过Jupyter利用,您可以选择在成功执行的查询上“自动练习”它。
如果通过其他界面利用,您可以要求界面提示用户对结果提供反馈。
精确的标题和SQL对存储供将来参考,使未来的结果更正确。
支持任何SQL数据库
该软件包允许您连接到您可以利用Python连接的任何SQL数据库。
选择您的前端
大多数人从Jupyter Notebook开始。
通过Slackbot、Web应用程序、Streamlit应用程序或自界说前端向终极用户公开。


4、扩展Vanna

Vanna旨在连接到任何数据库、LLM和向量数据库。有一个VannaBase抽象基类界说了一些根本功能。该软件包提供了与OpenAI和ChromaDB一起利用的实现。您可以轻松扩展Vanna以利用本身的LLM或向量数据库。具体信息请参阅文档。


Vanna的安装和利用方法

检察文档以获取有关您所需数据库、LLM等的具体信息。
如果您想在练习后了解其工作方式,可以尝试此Colab条记本。

1、安装

pip install vanna
有一些可选包可以安装,详细信息请参阅文档。



导入
如果您要自定义LLM或向量数据库,请参阅文档。
import vanna as vn

2、练习

根据您的用例,您大概必要或不必要运行这些vn.train下令。具体信息请参阅文档。

(1)、利用DDL语句练习

DDL语句包含有关数据库中表名、列、数据范例和关系的信息。
vn.train(ddl="""
    CREATE TABLE IF NOT EXISTS my-table (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      age INT
    )
""")
(2)、利用文档练习

偶尔您大概希望添加关于业务术语或界说的文档。
vn.train(documentation="Our business defines XYZ as ...")


(3)、利用SQL练习

您还可以将SQL查询添加到练习数据中。如果您已经有一些查询可用,只需从编辑器中复制并粘贴它们即可开始天生新的SQL。
vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")


3、提问标题

vn.ask("What are the top 10 customers by sales?")
您将得到SQL查询结果,以及连接到数据库时的表格和自动天生的Plotly图表。
https://img-blog.csdnimg.cn/direct/8f728a8476f04c109c073a7bfba7955d.png




Vanna的应用案例

更新中……

1、底子用法

!pip install vanna
import vanna
from vanna.remote import VannaDefault
vn = VannaDefault(model='chinook', api_key=vanna.get_api_key('my-email@example.com'))
vn.connect_to_sqlite('https://vanna.ai/Chinook.sqlite')
vn.ask('What are the top 10 artists by sales?')

from vanna.flask import VannaFlaskApp
VannaFlaskApp(vn).run()





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介