VannaAI 介绍及使用 - 第一篇

VannaAI 介绍

本篇章主要对Vanna做一些关于原理的介绍,下一篇章将对如何使用具体说明。

一、介绍

Vanna 是一个基于 MIT 许可的开源 Python RAG(检索增强生成)框架,专注于 SQL 生成和相关功能。它允许用户在自己的数据上训练一个 RAG “模型”,然后通过自然语言提问,生成在数据库上运行的 SQL 查询语句,并将查询结果以表格和图表的方式展示给用户。Vanna 的核心目标是简化数据库交互,让用户无需精通 SQL 即可从数据库中提取有价值的信息。

官方网站:Vanna.ai 开源代码库:GitHub

二、探索过程 

1. 使用 AI 生成 SQL 的原因

数据仓库和数据湖在企业中广泛应用,但能够精通 SQL 并理解企业数据结构的人很少。AI 可以帮助商业用户使用自然语言查询数据库,生成 SQL 查询,从而提高数据利用率。

2.探索过程

在官方文档中,讲述了他们探索如何利用不同的上下文策略和大型语言模型(LLM)来提高 SQL 生成的准确性。从实验中表明,提供合适的上下文信息可以显著提高 LLM 生成 SQL 查询的准确性,从约3%提升到约80%。文章比较了多种 LLM,包括 Google Bison、GPT 3.5、GPT 4 ,并展示了结合模式定义、文档和先前 SQL 查询的相关性搜索策略。

 

3.主要发现

  1. 提供适当的上下文至关重要,可以显著提高 LLM 生成 SQL 的准确性。
  2. GPT 4 是生成 SQL 的最佳 LLM,但在提供足够上下文时,Google 的 Bison 表现同样优异。
  3. 三种上下文策略中,结合模式定义、文档和先前 SQL 查询的相关性搜索策略表现最佳。

原文地址:

《 AI SQL 准确性:测试不同的 LLMs + 上下文策略以最大限度地提高 SQL 生成准确性》https://vanna.ai/blog/ai-sql-accuracy.html

三、Vanna 的工作原理

 1.工作原理

 

Vanna 的工作原理可以简化为两个主要步骤:

  1. 训练 RAG 模型:使用数据库的 DDL 语句、元数据(数据库内关于自身数据的描述信息)、相关文档说明、参考样例 SQL 等训练一个 RAG 的“模型”(embedding 
Vanna AI集成到Spring Boot项目中通常需要几个步骤: 1. **添加依赖**: 首先,你需要在项目的`pom.xml`文件中添加Vanna AI的依赖。如果你是在Maven项目里,可以添加像下面这样的条目: ```xml <dependency> <groupId>com.vannadata</groupId> <artifactId>vanna-core</artifactId> <version>latest-version</version> </dependency> ``` 确保替换`latest-version`为Vanna AI库的最新版本。 2. **配置环境**: Vanna AI可能需要一些特定的环境配置,比如API密钥。你可以在`application.properties`或`application.yml`文件中设置这些配置项。 3. **创建服务类**: 创建一个Spring Bean来管理Vanna AI的实例,例如: ```java @Service public class VannaAiService { private final VannaCore vannaCore; @Autowired public VannaAiService(VannaCore vannaCore) { this.vannaCore = vannaCore; } // 添加你所需的方法,如调用Vanna API进行处理 public Response processRequest(Request request) { return vannaCore.process(request); } } ``` 4. **编写客户端代码**: 在你的业务层,你可以通过注入这个服务类来使用Vanna AI的功能。例如,在控制器方法中: ```java @RestController public class YourController { private final VannaAiService vannaAiService; @Autowired public YourController(VannaAiService vannaAiService) { this.vannaAiService = vannaAiService; } @PostMapping("/vanna-process") public ResponseEntity<Response> processVanna() { Request request = ...; // 构造请求对象 Response response = vannaAiService.processRequest(request); return new ResponseEntity<>(response, HttpStatus.OK); } } ``` 5. **启动应用**: 最后,运行Spring Boot应用,Vanna AI就集成好了,并可通过API端点访问其功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值