Ask natural language questions about your data, get interactive visualizations.
Requirements: Python 3.13+, UV
# Clone and install
git clone <repo-url>
cd BigData-Visualization
uv syncuv run python main.pyOn first run you'll be prompted for your OpenAI API key:
No OpenAI API key found.
Get one at: https://platform.openai.com/api-keys
Enter your OpenAI API key: sk-...
Key saved to .env
The key is saved to .env and loaded automatically on future runs.
Then open http://127.0.0.1:8050 and start asking questions.
uv run python main.py # Default: sample sales data
uv run python main.py --data path/to/file.csv # Your own CSV or Parquet
uv run python main.py --port 3000 # Custom port- "Show total revenue by region"
- "Revenue trends over time, monthly"
- "What's the distribution of unit prices?"
- "Compare revenue per product category as a radar chart"
- "Top 10 products by revenue"
uv run pytest # Run tests (71 tests)
uv run ruff check . # Lint
uv run ruff format . # FormatUser query → [LLM Refine] → [LLM VizSpec] → [SQL Gen] → [DuckDB] → [Plotly] → Browser
Three layers: Data Engine (DuckDB) | LLM Pipeline (GPT-4o-mini) | Viz Renderer (Plotly/Dash)
CS 43016 — Big Data, Kent State University Joseph Demore, Randy Truong, Nathan Naples, Annika Hall, Cristian Quezada, Kregg Jackson