Vanna.AI
官方文档
https://vanna.ai/docs/
个人理解
Vanna本身是python的一个第三方库,定义上是耦合市面上已有的大模型(LLM)与用户数据库,主要作用是增强大模型对数据库的查询效果,通过对
的使用,在向量库中存储已有的(数据库中的数据结构等)和后续加入的(人为训练的数据)查询问题,并且按照DDL、Document、SQL三种类型在向量库中进行分类存储,还包含一种SQL/Question类型,这种类型格式为{“question”:“年龄大于5随的人”,“sql”:“select name
from user
where age>5;”},在进行交互查询时,Vanna在向量库中匹配最倾向的DDL、Document、SQL类型数据,生成prompt,将其交由LLM进行解析,生成相应的sql查询语句,使用SQL语句对集成的数据库进行准确查询,之后由Vanna进行数据处理以及输出,用户对输出数据进行判断并选择是否将其更新入向量库。
附上官网数据流图
过程中可选用多种向量库、LLM、Database进行组合,并且Vanna也支持很多的选择。
快速开始
-
使用官方mock数据
- 安装库包
pip intall vanna
-
实现demo
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 albums by sales?") from vanna.flask import VannaFlaskApp VannaFlask(vn).run()
功能介绍
Vanna框架使用可分为两大部分,1、模型训练Train,2、提问Ask
相应的功能为
vn.train、vn.ask
vn就是我们实例化的类,不是哪个和影子玩拳击的那位
-
vn.train 使用方式整理
-
DDL statements:主要告诉模型那些表、那些列、那些数据可以用
-
vn.train(ddl="CREATE TABLE my_table (id INT,name TEXT,age INT)")
-
-
Documentation strings: 设计数据库之外的一些文档、业务什么的数据
-
vn.train(documentation=
-
-