Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询

简介: Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能:基于大型语言模型自动生成 SQL 查询。
  2. 技术:结合检索增强技术(RAG)提高查询准确性。
  3. 支持:兼容多种 LLMs 和 SQL 数据库。

正文(附运行示例)

Vanna 是什么

公众号: 蚝油菜花 - vanna

Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,旨在帮助用户基于大型语言模型(LLMs)为其数据库生成精确的 SQL 查询。Vanna 通过两步简单流程操作:首先在用户数据上训练 RAG 模型,然后基于提问生成可在数据库上执行的 SQL 查询。

Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。Vanna 还支持自定义前端界面,支持用户用反馈自我学习,提高查询准确性。

Vanna 的主要功能

  • SQL 查询生成:基于大型语言模型(LLMs)根据用户的问题自动生成 SQL 查询。
  • 检索增强:基于检索增强技术(RAG)结合生成模型,提高查询的准确性。
  • 多数据库支持:支持连接多种 SQL 数据库,如 PostgreSQL、MySQL 等。
  • 多 LLMs 支持:兼容多个 LLMs,包括 OpenAI、Anthropic 等。
  • 向量存储集成:与多种向量数据库集成,如 AzureSearch、PgVector 等。
  • 用户界面:提供多种用户界面选项,包括 Jupyter Notebook、Streamlit、Flask 和 Slack。

Vanna 的技术原理

  • 检索增强生成(RAG):基于 RAG 技术,一种结合检索(从大量数据中检索相关信息)和生成(基于检索到的信息生成输出)的方法。让 Vanna 更准确地理解和响应用户的问题。
  • 大型语言模型(LLMs):Vanna 依赖于 LLMs 理解和生成自然语言。模型经过预训练,能理解语言的复杂性和上下文。
  • 向量数据库:Vanna 用向量数据库存储和检索与用户问题相关的信息。数据库能高效地处理和比较大量的数据点。
  • 训练与微调:用户基于提供 DDL 语句、文档和 SQL 查询训练 Vanna,使其更好地理解和响应特定于业务的查询。
  • 自动化 SQL 执行:Vanna 生成的 SQL 查询能自动在用户的数据库上执行,无需人工干预。

如何运行 Vanna

安装

pip install vanna

导入

from vanna.openai.openai_chat import OpenAI_Chat
from 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-4-...'})

训练

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 ...")

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

提问

vn.ask("What are the top 10 customers by sales?")

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
5月前
|
人工智能 中间件 数据库
沐曦 GPU 融入龙蜥,共筑开源 AI 基础设施新底座
沐曦自加入社区以来,一直与龙蜥社区在推动 AIDC OS 的开源社区建设等方面保持合作。
|
6月前
|
人工智能 安全 API
HiMarket 正式开源,为企业落地开箱即用的 AI 开放平台
我们发起 HiMarket 的初心:帮助用户从 80% 开始构建 AI 开放平台。
988 53
|
5月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
6432 88
|
6月前
|
人工智能 运维 安全
|
6月前
|
人工智能 云栖大会
|
6月前
|
存储 机器学习/深度学习 人工智能
​​解锁AI检索的7大Embedding技术:从稀疏到多向量,一文掌握!​
本文系统解析七种主流文本嵌入技术,包括 Sparse、Dense、Quantized、Binary、Matryoshka 和 Multi-Vector 方法,结合适用场景提供实用选型建议,助你高效构建文本检索系统。
755 0
|
6月前
|
人工智能 数据库 索引
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
411 107
|
6月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
2574 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~

热门文章

最新文章