VizData AI is a powerful analytical platform that integrates autonomous AI agents directly into an interactive spreadsheet interface. By leveraging Local LLMs (Ollama) and the CrewAI multi-agent framework, users can chat directly with their data—telling the AI to write Pandas scripts to generate test datasets, modify spreadsheets, or automatically plot deep analytical visualizations, all completely offline.
- Dual-Agent Architecture:
- Data Manager: Executable Data Science agent that natively writes
pandasPython code to build, edit, sum, or reshape data interactively in real-time. - Analytics Agent: Visual statistician that ingests spreadsheet state to automatically generate and display complex
matplotlibandseaborngraphs directly in your chat.
- Data Manager: Executable Data Science agent that natively writes
- Spreadsheet Aesthetic: A fully interactive grid (built entirely in Vanilla JS/CSS) featuring modern glassmorphic styling, collapsible chat sidebars, and real-time editable cells.
- Privacy-First Local LLMs: Built to run entirely locally with
Ollama(using models like Qwen 2.5), overriding standard OpenAI parsers to enforce strict API tool-calls natively. - Multi-Format Uploads: Effortlessly inject
.csv,.xlsx, and.xlsfiles directly into the active pandas memory state.
| Layer | Technologies |
|---|---|
| Frontend | Vanilla HTML5, Advanced CSS3, Vanilla JS, Lucide Icons |
| Backend | FastAPI, Uvicorn, Pandas, Matplotlib, Seaborn |
| AI "Brain" | CrewAI, LiteLLM, Ollama (Local), Google Gemini (Cloud) |
| Environment | Python-dotenv |
graph TD
User((User)) -->|Upload Data| UI[Frontend UI]
User -->|Chat Query / Create| UI
UI -->|API Payload| Backend[FastAPI Server]
subgraph "Intelligent Multi-Agent System"
Backend -->|Natural Language| CrewAI
CrewAI -->|Routing| Router{Query Type?}
Router -->|CRUD & Generation| DataAgent[Data Manager]
DataAgent -->|Writes & Runs Pandas Code| PyTool[run_python_script]
PyTool -->|Mutated DataFrame| RAM[(Active Session RAM)]
Router -->|Visualization| VizAgent[Analytics Agent]
VizAgent -->|Creates PNGs| ChartTool[Plotting Tools]
end
RAM -->|Updated JSON State| Backend
ChartTool -->|Base64 Image Array| Backend
Backend -->|Refresh UI & Chat| UI
- Python 3.9+
- Ollama (If running locally, pull
qwen2.5:7bor similar) - (Optional) Gemini API Key for cloud fallback.
Clone the repository:
git clone https://github.com/Shaktisinhchavda/vizdata-ai.git
cd vizdata-aiSet up the Environment:
# Create a virtual environment
python -m venv venv
# On Windows:
venv\Scripts\activate
# On MacOS/Linux:
source venv/bin/activateInstall Backend Dependencies:
pip install -r requirements.txtEnvironment Variables:
Create a .env file in the root directory if you want to fall back to Google Gemini models instead of locally emulated Ollama paths:
GEMINI_API_KEY=your_gemini_api_key_here(Note: If no key is provided, the FastAPI backend falls back recursively to local http://localhost:11434/v1 OpenAI-emulated endpoints for total offline security)
- Start the Server:
cd backend python main.py - Access the App: Open
http://localhost:8000in your browser. - Analyze Data:
- Upload a dataset or click Create with AI to let the Data Manager generate a dataset from scratch using a prompt.
- Example prompt for Data Manager: "Create an empty dataset with columns Name, Age, Title, and Salary. Then add 5 rows of sample employee data."
- Example prompt for Analytics Agent: "Plot a scatter matrix showing the relationship between Revenue and Units Sold grouped by Region."
Distributed under the MIT License. See LICENSE for more information.