LO
lohitkolluri/NLP2SQL
Transform natural language into SQL queries using Azure OpenAI. Visualize database results with interactive charts and explore data effortlessly.
Turn your words into SQL magic
Visualize your data dynamically
Multi-database support
โจ Features
๐ฏ Core Features
- Natural Language to SQL ๐ฃ๏ธ โ ๐
- Convert text queries into SQL commands using Azure OpenAI or Gemini models
- Intelligent query interpretation with detailed decision logs
- Step-by-step reasoning for query generation
- Multimodal Interaction ๐ฅ
- Process both textual and visual inputs for richer query context
- Combine image data with text to enhance query generation
- Multi-Database Support ๐๏ธ
- SQLite compatibility with file upload
- PostgreSQL integration with secure connection
- Dynamic schema exploration
- Interactive Data Explorer ๐
- Real-time data filtering and exploration
- Comprehensive query results with summary statistics
- Advanced table views with sorting and filtering
๐ Visualization & Analytics
- Dynamic Visualizations ๐
- Multiple chart types (Bar, Line, Scatter, Area, Histogram)
- Interactive chart configuration
- AI-powered visualization recommendations
- Summary Statistics ๐
- Detailed numeric analysis
- Categorical data insights
- Distribution analysis
- Statistical measures (mean, median, mode, skewness, kurtosis)
๐ก๏ธ Security & Management
- Safe SQL Execution ๐
- Strict query validation
- SQL injection prevention
- Comprehensive error handling and feedback
- Query History ๐
- Searchable query log
- Query reusability
- Multiple export formats (CSV, Excel, JSON)
๐ Getting Started
graph LR
A[User Input] --> B[LLM Processing]
B --> C[SQL Generator]
C --> D[Database]
D --> E[Results]
E --> F[Visualization]
Installation
1๏ธโฃ Clone the Repository
git clone https://github.com/lohitkolluri/NLP2SQLL.git
cd NLP2SQL2๏ธโฃ Set Up Environment
# Create .env file
cat << EOF > .env
### 2a: Azure Configuration
LLM_PROVIDER=AZURE
OPENAI_ENDPOINT="https://[ENDPOINT_NAME].openai.azure.com"
OPENAI_API_VERSION="2024-08-01-preview"
OPENAI_API_KEY="YOUR AZURE OPENAI API KEY"
MODEL_NAME="YOUR AZURE OPENAI MODEL NAME"
### 2b: Gemini Configuration
LLM_PROVIDER=GEMINI
GEMINI_API_KEY="YOUR GEMINI API KEY"
EOF3๏ธโฃ Install Dependencies
pip install -r requirements.txt4๏ธโฃ Launch the App
streamlit run app/NLP2SQL.py๐จ Built With
| Technology | Purpose |
|---|---|
| Web Interface | |
| NLP Processing | |
| NLP Processing | |
| PostgreSQL DB | |
| SQLite DB | |
| Visualizations |
๐ Key Features
mindmap
root((NLP2SQL))
Query Processing
Natural Language Input
Decision Logging
Detailed Reasoning
Visualization
Interactive Charts
Summary Statistics
Data Distribution
Database
PostgreSQL
SQLite
Schema Analysis
Security
Query Validation
Error Handling
Safe Execution
๐ก How It Works
- Query Input โก๏ธ User enters natural language query
- Processing โก๏ธ Azure OpenAI analyzes and generates SQL with reasoning
- Validation โก๏ธ Query is validated for safety and correctness
- Execution โก๏ธ Query runs against selected database
- Analysis โก๏ธ Results are processed with summary statistics
- Visualization โก๏ธ Data is presented with AI-recommended charts
- Export โก๏ธ Results can be downloaded in multiple formats
๐ Supported Visualizations
- Bar Chart: Comparing categorical data
- Line Chart: Time-series and trend analysis
- Scatter Plot: Relationship between variables
- Area Chart: Cumulative totals and trends
- Histogram: Distribution analysis
๐ Security Features
- Strict SQL query validation
- Prevention of harmful SQL operations
- Secure database connections
- Protected sensitive information
- Input sanitization
๐ Data Analysis
- Comprehensive summary statistics
- Distribution analysis
- Correlation detection
- Trend identification
- Outlier detection
License ยฉ Lohit Kolluri