Vanna是一个MIT开源许可的Python RAG(检索增强生成)框架,专门用于SQL生成和相关功能。该项目允许用户通过自然语言与SQL数据库进行对话,实现准确的文本转SQL查询生成。
GitHub地址: https://github.com/vanna-ai/vanna
Vanna基于检索增强生成(RAG)技术,工作流程分为两个简单步骤:
支持多种主流数据库:
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-...'})
可以通过多种方式训练模型:
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查询训练:
vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")
vn.ask("What are the top 10 customers by sales?")
系统会返回:
Vanna提供多种用户界面:
Vanna采用模块化设计,基于抽象基类VannaBase,可以轻松扩展以使用不同的:
Vanna.ai是一个功能强大、易于使用的文本转SQL框架,它通过RAG技术和大语言模型的结合,让任何人都能够用自然语言与数据库进行交互。无论是数据分析师、开发者还是业务用户,都能从这个工具中受益,大大提高数据查询和分析的效率。