文章目录
- Vanna概要
- 工作原理
- 技术介绍
- 1.基于检索增强(RAG)
- 2.大型语言模型(LLM)
- 3.向量数据库
- 如何使用Vanna
- 1.安装环境依赖
- 2.配置向量数据库与使用的LLM
- 3.连接数据库
- 4.训练 RAG
- DDL 建表语句训练
- 文档训练(告知模型特殊字段含义等)
- 示例 SQL 查询训练
- 其他
- vanna核心功能:
- vanna具备web应用功能
- 总结
本文章讲解的是生成SQL模型与工具,能够通过文字转为SQL命令 简化SQL命令。
我是AIdenwei,一个"鳝鱼"分享干货的博主
大家也可以叫我鳝鱼干博主。
在此分享文章内容的同时还是需要大家多看多学多实践。更多知识可以关注博主进行了解。大家点赞评论关注三连,才有更强的更新动力。谢谢!
Vanna概要
Vanna是一个基于检索增强(RAG)的SQL生成框架,使用大型语言模型(LLM)来生成SQL查询。
工作原理
训练阶段:通过将建表语句(DDL)、相关SQL查询示例以及对表或字段的注释等文档信息转化为向量形式(Embedding),并存储在向量数据库中。
问题处理与SQL生成阶段:当用户提出问题时,系统会在向量库中搜索与问题最相关的信息,然后将这些信息传递给LLM,由LLM生成SQL查询。
技术介绍
1.基于检索增强(RAG)
定义:RAG 旨在通过在生成文本的过程中引入外部知识检索,来增强生成模型的性能和效果。它允许模型在生成内容时,能够动态地从大规模的知识数据库中检索相关信息,并将这些信息融合到生成的文本中。
原理:RAG 模型一般由检索器和生成器两部分组成。检索器负责根据输入的提示或问题,从预先构建的知识图谱、文档库等数据源中检索出最相关的信息片段。生成器则以检索到的信息以及输入提示为条件,利用**生成式模型(如 Transformer 架构)**来生成自然流畅的文本。
大白话
:人工智能在 “说话” 或者 “创作” 的时候,能先去 “查资料”,然后把查到的有用信息揉到它说的话或者写的内容里
2.大型语言模型(LLM)
大型语言模型(Large Language Model,LLM)是一种基于深度学习技术的人工智能模型,具有强大的语言理解和生成能力,在自然语言处理领域取得了显著的成果
3.向量数据库
向量数据库是一种专门用于存储、索引、查询和检索高维向量数据的数据库系统,特别适合处理非结构化数据(如图像、音频、文本等),能够实现传统数据库难以完成的高级分析和相似性搜索
适用于非结构化数据 存储的是向量 类似关系型数据库
Milvus
:开源的高性能向量数据库
ChromaDB
: 开源的向量数据库
如何使用Vanna
1.安装环境依赖
安装 Vanna
安装向量数据库
安装 LLM 客户端
2.配置向量数据库与使用的LLM
初始化向量数据库
配置 LLM(openai)
结合向量数据库和 LLM (如chromadb向量数据库,openai)
3.连接数据库
连接数据库(如mysql)mysq可以通过容器启动使用
4.训练 RAG
DDL 建表语句训练
vn.train(ddl="""
CREATE TABLE `goods` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(150) NOT NULL,`cate_name` varchar(40) NOT NULL,`brand_name` varchar(40) NOT NULL,`price` decimal(10,3) NOT NULL DEFAULT '0.000',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
""")
文档训练(告知模型特殊字段含义等)
vn.train(documentation="""
goods表中的字段cate_name为电脑类型,包括:笔记本、游戏本、超极本、平板电脑、台式机、服务器/工作站、笔记本配件
""")
示例 SQL 查询训练
vn.train(question="华硕品牌的笔记本的平均价格是多少?",sql="SELECT AVG(price) AS avg_price FROM goods WHERE brand_name = '华硕' AND cate_name = '笔记本';"
)
详细的vanna实操演示
其他
vanna核心功能:
- vanna.train 训练使用
- vanna.ask 接收一个自然语言问题作为输入,输出生成的 SQL 查询语句。
- vanna.run_sql 接执行查询并获取结果 可以结合vanna.ask一起使用
vanna具备web应用功能
能够在界面上进行操作使用,用户可以无需编写 SQL 代码,即可通过自然语言交互完成复杂的数据查询和分析。降低数据分析的技术门槛。
总结
Vanna目前使用较多以及较为熟知,遇到问题更容易上网找到答案解决。
目前还有其他SQL模型与框架(SQLCoder,SQLGPT等)可以自行尝试。
感谢您的阅读!如果您喜欢这篇文章,不妨打赏一杯咖啡,让我更有动力继续分享更多优质内容。
博主其他文章