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技術和大語言模型的結合,讓任何人都能够用自然語言與數據庫進行交互。無論是數據分析師、開發者還是業務用戶,都能從這個工具中受益,大大提高數據查詢和分析的效率。