Vanna AI: RAG Framework for SQL Generation and Relational Databases

Vanna AI: RAG Framework for SQL Generation and Relational Databases 114

An open-source Python framework based on RAG technology that converts natural language questions into SQL queries, with support for multiple databases and language models.

#Ai工具箱 #Ai编程建站

Vanna AI: RAG Framework for SQL Generation and Relational DatabasesIntroduction

What is Vanna AI?

Vanna is a RAG (Retrieval-Augmented Generation) framework specifically designed to generate SQL queries and support multiple relational database management systems (RDBMS), such as PostgreSQL, MySQL, and Oracle. Vanna can automatically retrieve the schema of database tables and has self-learning capabilities, allowing it to store correct SQL query relationships.

Features of Vanna AI

  • Natural Language to SQL Conversion: Users can input questions directly in natural language, and Vanna AI will convert them into corresponding SQL query statements without requiring users to master complex SQL syntax.

  • High Accuracy: Through semantic retrieval and context augmentation of the RAG model, Vanna AI significantly improves the accuracy of SQL generation, especially performing well on complex datasets.

  • Self-Learning Capability: Vanna AI can automatically train on successfully executed queries, and users can also optimize the model by providing feedback, thereby progressively improving accuracy.

  • Security: User database content will not be sent to the LLM or vector database; SQL execution is performed entirely in the local environment, ensuring data security.

  • Database Support: Supports multiple SQL databases, such as Snowflake, BigQuery, PostgreSQL, etc., allowing users to easily connect to different databases for querying.

  • Flexible Frontend Options: Users can choose to interact with Vanna AI using Jupyter Notebook, Slackbot, web applications, Streamlit apps, or custom frontends.

Vanna AI Application Scenarios

  • Business Intelligence: Helps business analysts quickly obtain and analyze sales, customer, and inventory data, facilitating faster and more accurate data-driven decisions.

  • Financial Analysis: Assists financial professionals in conducting complex financial data analysis and risk assessment.

  • Medical Research: Supports medical researchers in extracting valuable information from large volumes of clinical data.

  • Education: Helps students and educators better understand and analyze educational data.

  • Market Research: Provides market researchers with tools to quickly analyze consumer behavior and market trends.

Vanna AI Installation Guide

1. Install Vanna

pip install vanna

2. Import and Initialize 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-...'})

3. Train Vanna

vn.train(ddl="CREATE TABLE IF NOT EXISTS my_table (...)")
vn.train(documentation="Our business defines XYZ as ...")
vn.train(sql="SELECT name, age FROM my_table WHERE ...")

4. Use Vanna for Querying

result = vn.ask("What are the top 10 customers by sales?")
GitHub Repository: https://github.com/vanna-ai/vanna

GitHub Repository:https://github.com/vanna-ai/vanna

Tools related to Vanna AI: RAG Framework for SQL Generation and Relational Databases