| --- |
| title: GenAI Text2SQL Analytics Assistant |
| emoji: π€ |
| colorFrom: blue |
| colorTo: indigo |
| sdk: streamlit |
| sdk_version: "1.45.1" |
| app_file: app.py |
| pinned: false |
| license: mit |
| ---
|
|
|
| # π€ GenAI Text2SQL Analytics Assistant
|
|
|
| An advanced Generative AI-powered analytics assistant that converts natural language questions into executable SQL queries and retrieves insights from a live relational database.
|
|
|
| Built using LangChain, Groq LLMs, SQLAlchemy, SQLite, and Streamlit.
|
|
|
| ---
|
|
|
| # π Features
|
|
|
| - Natural Language to SQL Conversion
|
| - Live Database Query Execution
|
| - AI-Powered Business Analytics
|
| - SQL Query Transparency
|
| - Interactive Analytics Dashboard
|
| - CSV Export Functionality
|
| - Automatic SQL Cleaning & Validation
|
| - Multi-table SQL Reasoning
|
| - Conversational Analytics Experience
|
| - Real-time Data Insights
|
|
|
| ---
|
|
|
| # π§ How It Works
|
|
|
| The application does not train a custom AI model.
|
|
|
| Instead, it uses a Large Language Model (LLM) to:
|
| 1. Understand the user's business question
|
| 2. Generate optimized SQL queries dynamically
|
| 3. Execute queries on a live SQLite database
|
| 4. Return analytics results and business insights
|
|
|
| ---
|
|
|
| # ποΈ Architecture
|
|
|
| ```text
|
| User Query
|
| β
|
| LLM (Groq + LangChain)
|
| β
|
| SQL Query Generation
|
| β
|
| SQLite Database Execution
|
| β
|
| Analytics Results
|
| β
|
| AI Business Summary + Visualization
|
| ```
|
|
|
| ---
|
|
|
| # π οΈ Tech Stack
|
|
|
| | Category | Technology |
|
| |---|---|
|
| | LLM Provider | Groq |
|
| | Framework | LangChain |
|
| | Database | SQLite |
|
| | ORM | SQLAlchemy |
|
| | Frontend | Streamlit |
|
| | Data Generation | Faker |
|
| | Data Processing | Pandas |
|
| | Language | Python |
|
|
|
| ---
|
|
|
| # π Project Structure
|
|
|
| ```bash
|
| TEXT2SQL-GENAI/
|
| β
|
| βββ agents/
|
| β βββ sql_agent.py
|
| β βββ langchain_sql_agent.py
|
| β
|
| βββ database/
|
| β βββ create_db.py
|
| β βββ seed_data.py
|
| β βββ ecommerce.db
|
| β
|
| βββ prompts/
|
| β βββ sql_prompt.py
|
| β
|
| βββ utils/
|
| β βββ sql_utils.py
|
| β βββ query_engine.py
|
| β
|
| βββ app.py
|
| βββ requirements.txt
|
| βββ .env
|
| βββ README.md
|
| ```
|
|
|
| ---
|
|
|
| # ποΈ Database Schema
|
|
|
| The project uses a relational e-commerce database containing:
|
|
|
| - Customers
|
| - Products
|
| - Employees
|
| - Orders
|
| - Order Items
|
|
|
| The database was populated with synthetic business data using Faker.
|
|
|
| ---
|
|
|
| # π Example Questions
|
|
|
| ```text
|
| Top 5 products by revenue
|
| ```
|
|
|
| ```text
|
| Which employee handled the most orders?
|
| ```
|
|
|
| ```text
|
| Average order value by city
|
| ```
|
|
|
| ```text
|
| Show revenue by product category
|
| ```
|
|
|
| ```text
|
| Top customers by spending
|
| ```
|
|
|
| ---
|
|
|
| # π₯ Advanced Features Implemented
|
|
|
| ## β
Schema-Aware Prompting
|
| Injected database schema directly into prompts to improve SQL accuracy.
|
|
|
| ## β
SQL Cleaning
|
| Automatically removes markdown formatting and cleans generated SQL.
|
|
|
| ## β
Error Handling & Retry Logic
|
| Detects invalid SQL queries and retries with correction prompts.
|
|
|
| ## β
LangChain SQL Agent
|
| Implemented autonomous SQL reasoning using LangChain SQL Agent.
|
|
|
| ## β
AI Business Summaries
|
| Generates human-readable business insights from query results.
|
|
|
| ## β
Interactive Analytics Dashboard
|
| Built using Streamlit with:
|
| - Data tables
|
| - SQL visibility
|
| - CSV export
|
| - Charts and visualizations
|
|
|
| ---
|
|
|
| # π Sample Analytics Capabilities
|
|
|
| - Revenue Analysis
|
| - Customer Segmentation
|
| - Product Performance
|
| - Sales Trends
|
| - Employee Performance Metrics
|
| - Business Intelligence Reporting
|
|
|
| ---
|
|
|
| # βοΈ Installation
|
|
|
| ## 1οΈβ£ Clone Repository
|
|
|
| ```bash
|
| git clone <your_repo_url>
|
| cd TEXT2SQL-GENAI
|
| ```
|
|
|
| ---
|
|
|
| ## 2οΈβ£ Create Virtual Environment
|
|
|
| ### Windows
|
|
|
| ```bash
|
| python -m venv venv
|
| venv\Scripts\activate
|
| ```
|
|
|
| ---
|
|
|
| ## 3οΈβ£ Install Dependencies
|
|
|
| ```bash
|
| pip install -r requirements.txt
|
| ```
|
|
|
| ---
|
|
|
| ## 4οΈβ£ Configure Environment Variables
|
|
|
| Create `.env`
|
|
|
| ```env
|
| GROQ_API_KEY=your_api_key_here
|
| ```
|
|
|
| ---
|
|
|
| # βΆοΈ Running The Project
|
|
|
| ## Step 1 β Create Database
|
|
|
| ```bash
|
| python database/create_db.py
|
| ```
|
|
|
| ---
|
|
|
| ## Step 2 β Seed Database
|
|
|
| ```bash
|
| python database/seed_data.py
|
| ```
|
|
|
| ---
|
|
|
| ## Step 3 β Run Streamlit App
|
|
|
| ```bash
|
| streamlit run app.py
|
| ```
|
|
|
| ---
|
|
|
| # π Key Learning Outcomes
|
|
|
| - Generative AI Application Development
|
| - Prompt Engineering
|
| - LangChain Agent Workflows
|
| - SQL Query Generation
|
| - Database Integration with LLMs
|
| - Conversational Analytics Systems
|
| - Streamlit Dashboard Development
|
| - AI-powered Business Intelligence
|
|
|
| ---
|
|
|
| # π― Future Improvements
|
|
|
| - PostgreSQL Support
|
| - Authentication System
|
| - Query History
|
| - Role-Based Access Control
|
| - Real-time Streaming Responses
|
| - Data Upload & Auto Analysis
|
| - Multi-turn Conversational Memory
|
| - Advanced Chart Visualizations
|
|
|
| ---
|
|
|
| # π Important Note
|
|
|
| This project does not fine-tune or train an LLM.
|
|
|
| Instead, it demonstrates:
|
| - LLM orchestration
|
| - schema-aware prompting
|
| - live SQL generation
|
| - autonomous database querying
|
| - AI analytics workflows
|
|
|
| which closely reflects real-world enterprise GenAI systems.
|
|
|
| ---
|
|
|
| # π¨βπ» Author
|
|
|
| Mohd Faizanullah
|
|
|