vanna

2025-12-10 0 763
github PYPI 文档 gurubase

vanna

vanna是MIT许可的开源Python Rag(检索型生成),用于SQL生成和相关功能。

0802.MP4

vanna工作原理

vanna在两个简单的步骤中工作 – 在数据上训练抹布模型”,然后提出问题,这些问题将返回可以设置可以在数据库上自动运行的SQL查询。

  1. 在您的数据上训练抹布“模型”
  2. 问问题

如果您不知道抹布是什么,请不要担心 – 您不需要知道在引擎盖下如何使用它来使用它。您只需要知道您“训练”了一个模型,该模型存储了一些元数据,然后使用它来“问”问题。

有关在引擎盖下如何工作的更多详细信息,请参见基础类。

用户界面

这些是我们使用vanna构建的一些用户界面。您可以将这些原样或自定义接口的起点使用。

  • Jupyter笔记本
  • vanna -ai/ vanna -StreamLit
  • vanna -ai/ vanna -flask
  • vanna -ai/ vanna -slack

支持的LLM

  • Openai
  • 人类
  • 双子座
  • 拥抱面
  • AWS Bedrock
  • 霍拉马
  • Qianwen
  • Qianfan
  • Zhipu

支持的矢量店

  • Azuresearch
  • OpenSearch
  • PGVECTOR
  • 松果
  • Chromadb
  • faiss
  • 马克
  • 米尔维斯
  • QDRANT
  • 编织
  • Oracle

支持的数据库

  • Postgresql
  • mysql
  • Prestodb
  • Apache Hive
  • Clickhouse
  • 雪花
  • Oracle
  • Microsoft SQL Server
  • Bigquery
  • sqlite
  • DuckdB

入门

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

如果您想了解训练后的工作方式,可以尝试此COLAB笔记本。

安装

pip install vanna

可以安装许多可选软件包,因此请参阅文档以获取更多详细信息。

进口

如果您要自定义LLM或Vector数据库,请参见文档。

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

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

vn = My vanna (config={\’api_key\’: \’sk-…\’, \’model\’: \’gpt-4-…\’})

# See the documentation for other options
\”>

 # 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 My vanna ( ChromaDB_VectorStore , OpenAI_Chat ):
    def __init__ ( self , config = None ):
        ChromaDB_VectorStore . __init__ ( self , config = config )
        OpenAI_Chat . __init__ ( self , config = config )

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

# See the documentation for other options 

训练

您可能需要或不需要运行这些VN.TRAIN命令,具体取决于您的用例。有关更多详细信息,请参见文档。

这些陈述显示为您如何工作。

用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_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 ;

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

customer_name total_sales
0 客户#000143500 6757566.0218
1 客户#000095257 6294115.3340
2 客户#000087115 6184649.5176
3 客户#000131113 6080943.8305
4 客户#000134380 6075141.9635
5 客户#000103834 6059770.3232
6 客户#000069682 6057779.0348
7 客户#000102022 6039653.6335
8 客户#000098587 6027021.5855
9 客户#000064660 5905659.6159

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

抹布与微调

抹布

  • 跨LLM的便携式
  • 易于删除培训数据(如果有任何一个都过时)
  • 跑步比微调便宜得多
  • 更多的未来 – 如果更好的LLM出现,您可以将其交换

微调

  • 如果您需要在提示中最大程度地减少令牌
  • 开始慢
  • 训练和跑步昂贵(通常)

为什么要vanna ?

  1. 复杂数据集的高精度。
    • vanna的功能与您提供的培训数据有关
    • 更多的培训数据意味着大型和复杂数据集的精度
  2. 安全而私密。
    • 您的数据库内容永远不会发送到LLM或矢量数据库
    • SQL执行发生在您的本地环境中
  3. 自我学习。
    • 如果使用jupyter,您可以在成功执行的查询中选择“自动训练”它
    • 如果通过其他接口使用,则可以使接口提示用户提供有关结果的反馈
    • 存储对SQL对的正确问题以供将来参考,并使未来的结果更加准确
  4. 支持任何SQL数据库。
    • 该软件包允许您连接到任何可以与Python连接的SQL数据库
  5. 选择您的前端。
    • 大多数人都从jupyter笔记本中开始。
    • 通过SlackBot,Web应用程序,简化应用程序或自定义前端暴露于最终用户。

扩展vanna

vanna旨在连接到任何数据库,LLM和向量数据库。有一个vanna基础抽象基类,可以定义一些基本功能。该软件包提供了与OpenAI和Chromadb一起使用的实现。您可以轻松地扩展vanna以使用自己的LLM或Vector数据库。有关更多详细信息,请参见文档。

vanna 100秒

<span aria-label=\"Video description vanna -in-100秒-480.mov“ class =” M-1“> vanna -in-100秒-480.mov

更多资源

  • 完整的文档
  • 网站
  • 支持小组支持

下载源码

通过命令行克隆项目:

git clone https://github.com/vanna-ai/vanna.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 vanna https://www.zuozi.net/33844.html

UnlockSoftwares
上一篇: UnlockSoftwares
cpplinks
下一篇: cpplinks
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务