Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available: 6.20.0
metadata
title: NL to SQL Chatbot Demo
emoji: 🧠
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.29.0
app_file: app.py
pinned: false
NL → SQL Chatbot Demo
This Hugging Face Space demonstrates a simple natural-language-to-SQL chatbot built in Python with Gradio and SQLite.
What it does
- Creates a small demo database automatically on first startup
- Accepts business questions in plain English
- Converts the question into a SQL query using a lightweight rule-based parser
- Executes the SQL against the SQLite database
- Returns both the generated SQL and the result preview
Demo schema
customers(id, name, country, segment)products(id, name, category, price)orders(id, customer_id, order_date, status, shipping_days)order_items(id, order_id, product_id, quantity, unit_price)
Example questions
- Show all customers
- Show orders from March 2026
- What is the total revenue by country?
- Top 5 products by revenue
- Average order value by customer
- How many orders are delayed?
- Show revenue by month
- List products in the Electronics category
Local run
pip install -r requirements.txt
python app.py
Files
app.py— Gradio UI and query executioninit_db.py— creates and seeds the example SQLite databasenl_to_sql.py— converts natural language into SQLdemo_store.db— created automatically at runtime
Next steps
A natural upgrade path is to replace the rule-based parse_question_to_sql() function with an LLM prompt that:
- Receives the schema
- Generates SQL only
- Applies guardrails (read-only, table allowlist)
- Validates the result before execution
That lets you keep the same UI while making the translator more flexible.