Balaprime's picture
Update README.md
b97c8b0 verified

A newer version of the Gradio SDK is available: 6.5.0

Upgrade
metadata
title: 2 Natural Lang2SQL Query
emoji: 🐠
colorFrom: indigo
colorTo: blue
sdk: gradio
sdk_version: 5.30.0
app_file: app.py
pinned: false

🧠 Natural Language to SQL Query Generator with Results 🧠

Convert human-readable questions into valid SQL queries using a combination of semantic search, LLMs, and Gradio UI β€” and see the query results live from your database!

πŸš€ Features

  • πŸ” Understand Natural Language: Converts simple English questions to SQL using powerful embeddings and LLMs (LLaMA3 via Groq).
  • 🧠 Smart Table Matching: Uses SentenceTransformer-based embeddings and cosine similarity to pick the most relevant tables.
  • πŸ› οΈ Dynamic SQL Generation: Automatically generates JOINs when needed based on metadata.
  • πŸ“„ Predefined Schema: Works with three tables β€” student, employee, and course.
  • πŸ§ͺ Instant Execution: Runs the generated SQL query and shows the result in the UI.
  • 🌐 Interactive UI: Clean, web-based interface built with Gradio.

🧰 Tech Stack

  • Python 🐍
  • Gradio β€” For the frontend UI
  • Sentence Transformers β€” For encoding metadata and queries
  • Groq API β€” For LLaMA3-powered SQL generation
  • SQLite β€” Lightweight DB backend

πŸ—ƒοΈ Tables Overview

πŸ§‘β€πŸŽ“ student

Column Description
student_id Unique ID of student
first_name First name
last_name Last name
date_of_birth Birthdate
email Email address
phone_number Contact number
major Field of study
year_of_enrollment Year enrolled

πŸ‘¨β€πŸ’Ό employee

Column Description
employee_id Unique ID of employee
first_name First name
last_name Last name
email Email address
department Department name
position Job title
salary Salary
date_of_joining Joining date

πŸ“˜ course

Column Description
course_id Unique ID of course
course_name Course title
course_code Code for the course
instructor_id Refers to employee_id
department Department offering the course
credits Number of credits
semester Semester offered

βš™οΈ Setup Instructions

1. Clone the Repo

git clone https://github.com/your-username/sql-query-generator.git
cd sql-query-generator

2. Install Dependencies

pip install -r requirements.txt

3. Set Up .env

Create a .env file in the root directory and add your Groq API Key:

groq_api_key=your_groq_api_key_here

4. Launch the App

python app.py

Or just run:

streamlit run app.py  # If you're using a streamlit version

5. Use the Web Interface

Go to the URL provided in the terminal (typically http://127.0.0.1:7860) and enter your natural language query.


πŸ§ͺ Sample Queries

Natural Language Query Action
"List all students enrolled in 2022" Filters student table
"Show all employees in Computer Science department" Filters employee table
"Get courses taught in Fall semester" Filters course table
"Find course names and instructor names" Joins course and employee

πŸ”’ Security & Limitations

  • This is a prototype/demo and should not be used in production without input sanitization.
  • Currently limited to SELECT queries only.
  • Works only with the predefined schema (3 tables).

🀝 Contributing

Contributions are welcome! Feel free to open an issue or pull request for:

  • New table additions
  • Better embeddings
  • UI/UX improvements
  • Model optimization

πŸ‘¨β€πŸ’» Author

Built by \Jamgala Bala Swaroop πŸ“« Email: jbsroop@gmail.com