当前位置:首页 » 《随便一记》 » 正文

Vanna-ai 大模型开源项目 基于RAG的TextToSql框架 安装和使用教程

19 人参与  2024年04月21日 19:24  分类 : 《随便一记》  评论

点击全文阅读


github项目地址:vanna-ai/vanna: ? 与 SQL 数据库聊天?。通过 LLMs使用RAG进行准确的TextToSQL的生成工作 ? 。


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

0802.mp4


用户接口

这些是使用 Vanna 构建的一些用户接口。您可以按原样使用这些接口,也可以将其用作自己的自定义接口的起点。

Jupyter Notebookvanna-ai/vanna-streamlitvanna-ai/vanna-flaskvanna-ai/vanna-slack

开始

有关所需数据库、LLM 等的详细信息,请参阅文档。

如果您想在训练后了解它的工作原理,可以尝试这款 Colab 笔记本。


安装

pip install vanna

根据您的用例,您可能需要也可能不需要运行这些命令。有关详细信息,请参阅文档。

可以先使用如下代码创建默认的Vanna对象:

import vannafrom vanna.remote import VannaDefaultvn = VannaDefault(model='model_name', api_key='api_key')vn.connect_to_sqlite('https://vanna.ai/Chinook.sqlite')vn.ask("What are the top 10 albums by sales?")

导入

如果要自定义 LLM 或向量数据库,请参阅文档。

# The import statement will vary depending on your LLM and vector database. This is an example for OpenAI + ChromaDBfrom vanna.openai.openai_chat import OpenAI_Chatfrom vanna.chromadb.chromadb_vector import ChromaDB_VectorStoreclass 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

样例

import vannafrom vanna.openai.openai_chat import OpenAI_Chatfrom 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-3.5-turbo'}) # 训练向量库vn.train(ddl="""    SELECT customer_name, SUM(sales_amount) as total_salesFROM sales_wnGROUP BY customer_nameORDER BY total_sales DESCLIMIT 10;""") vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")  # 询问问题vn.ask("What are the top 10 customers by sales?")

训练

根据您的用例,您可能需要也可能不需要运行这些命令。有关详细信息,请参阅文档。

显示这些陈述是为了让您了解它的工作原理。


使用 DDL 语句进行训练

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

vn.train(ddl="""    CREATE TABLE IF NOT EXISTS my-table (        id INT PRIMARY KEY,        name VARCHAR(100),        age INT    )""")

带文档的训练

有时,您可能希望添加有关业务术语或定义的文档。

vn.train(documentation="Our business defines XYZ as ...")

使用 SQL 进行训练

您还可以将 SQL 查询添加到训练数据中。如果您已经有一些查询,这将很有用。您只需从编辑器中复制并粘贴这些内容即可开始生成新的 SQL。

vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")

提问

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_salesFROM   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_custkeyGROUP BY customer_nameORDER BY total_sales desc limit 10;

如果已连接到数据库,则将获得以下表:

CUSTOMER_NAMETOTAL_SALES
0Customer#0001435006757566.0218
1Customer#0000952576294115.3340
2Customer#0000871156184649.5176
3Customer#0001311136080943.8305
4Customer#0001343806075141.9635
5Customer#0001038346059770.3232
6Customer#0000696826057779.0348
7Customer#0001020226039653.6335
8Customer#0000985876027021.5855
9Customer#0000646605905659.6159
 

您还将获得一个自动的 Plotly 图表:


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/98466.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 爱如花木向阳而生:结局+番外(时渺谢行舟)
  • [四百摄氏度下爱我]全文+后续_安紫沈竹老公后续已完结
  • 时光烬余温:结局+番外看点十足(孟昭宁顾君蘅顾斯年)全书免费_(孟昭宁顾君蘅顾斯年)时光烬余温:结局+番外看点十足后续(孟昭宁顾君蘅顾斯年)
  • (时光烬余温:全书+后续+结局)人气书荒必读(孟昭宁顾君蘅)_(时光烬余温:全书+后续+结局)列表_笔趣阁(孟昭宁顾君蘅)
  • 孟烟梁砚舟(离婚后,我虐前夫千百遍贺凌屿:结局+番外)结局_(孟烟梁砚舟离婚后,我虐前夫千百遍贺凌屿:结局+番外全书结局)结局列表_笔趣阁(孟烟梁砚舟)
  • 幽思燃烬忘川路:叶墨谨幽璃:+后续好文分享完本_完本幽思燃烬忘川路:叶墨谨幽璃:+后续好文分享
  • 恰似晚风不留我:结局+番外(沈冉顾墨琛)全书免费沈冉顾墨琛_恰似晚风不留我:结局+番外免费沈冉顾墨琛列表_笔趣阁(沈冉顾墨琛)
  • 错位时空说爱你:结局+番外全面完结(徐远澈谢棠)_错位时空说爱你:结局+番外全面完结徐远澈谢棠
  • 「杏花疏影里」小说节选试读_[裴璟苏聿]全文免费在线阅读
  • [恶毒后妈放弃攻略]全文+后续_[周雨小姐李妈]小说精彩章节免费试读
  • (番外)+(全书)重逢后,高冷贺总红着眼拉我领证:结局+番外(乔晚柠贺砚舟)完结_(乔晚柠贺砚舟)列表_笔趣阁(重逢后,高冷贺总红着眼拉我领证:结局+番外)
  • (番外)+(全书)叶墨谨幽璃(幽思燃烬忘川路:全章+后续+结局)全书在线_叶墨谨幽璃免费列表_笔趣阁(幽思燃烬忘川路:全章+后续+结局)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1