datawizard116's picture
Update README.md
4956f0d verified
|
Raw
History Blame Contribute Delete
5.23 kB

A newer version of the Streamlit SDK is available: 1.59.1

Upgrade
metadata
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

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

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

Top 5 products by revenue
Which employee handled the most orders?
Average order value by city
Show revenue by product category
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

git clone <your_repo_url>
cd TEXT2SQL-GENAI

2️⃣ Create Virtual Environment

Windows

python -m venv venv
venv\Scripts\activate

3️⃣ Install Dependencies

pip install -r requirements.txt

4️⃣ Configure Environment Variables

Create .env

GROQ_API_KEY=your_api_key_here

▢️ Running The Project

Step 1 β€” Create Database

python database/create_db.py

Step 2 β€” Seed Database

python database/seed_data.py

Step 3 β€” Run Streamlit App

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