A multi-agent web application that allows users to upload data files and "talk" to their data using natural language. The system uses a Planner-Executor agent architecture powered by Google Gemini via LiteLLM proxy and PandasAI.
Live Demo: https://the-intelligent-data-room.streamlit.app/
- Data Upload - Support for CSV and XLSX files (Max 10MB)
- Natural Language Queries - Ask questions about your data in plain English
- Multi-Agent Architecture - Planner + Executor agents working together
- Auto Chart Generation - PandasAI automatically generates visualizations
- Context Memory - Remembers last 5 messages for follow-up questions
- Execution Plan Display - See how the AI plans to answer your question
┌─────────────────────────────────────────────────────────────────────┐
│ USER INTERFACE │
│ (Streamlit Web App) │
└───────────────────────────┬─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ ORCHESTRATOR │
│ (Coordinates agents and manages state) │
└───────────┬─────────────────────────────────────┬───────────────────┘
│ │
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────────────┐
│ PLANNER AGENT │ │ EXECUTOR AGENT │
│ │ │ │
│ - Analyzes question │ │ - Receives execution plan │
│ - Reads data schema │ ───► │ - Uses PandasAI + Gemini │
│ - Creates execution │ │ - Generates charts (PNG) │
│ plan with steps │ │ - Returns answer + visuals │
│ - Determines chart type │ │ │
└─────────────────────────┘ └─────────────────────────────────┘
│ │
│ ┌───────────────┐ │
└────────►│ MEMORY MODULE │◄──────────┘
│ (Last 5 msgs) │
└───────────────┘
- User uploads a CSV/XLSX file
- User asks a question in natural language
- Planner Agent analyzes the question and creates an execution plan
- Executor Agent uses PandasAI to execute the plan on the data
- Charts are auto-generated and displayed alongside the answer
| Component | Technology |
|---|---|
| Frontend/UI | Streamlit |
| AI/LLM | Google Gemini (via LiteLLM proxy) |
| Data Analysis | PandasAI, Pandas |
git clone https://github.com/yourusername/The-Intelligent-Data-Room.git
cd The-Intelligent-Data-Room
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file:
LITELLM_API_KEY=your_api_key_here
LITELLM_API_BASE=https://your-litellm-proxy.com/v1streamlit run src/app.pyThe-Intelligent-Data-Room/
├── src/
│ ├── app.py # Main Streamlit application
│ ├── agents/
│ │ ├── planner.py # Planner Agent - creates execution plans
│ │ ├── executor.py # Executor Agent - runs plans with PandasAI
│ │ └── orchestrator.py # Coordinates agents and manages state
│ └── utils/
│ ├── memory.py # Conversation memory
│ └── data_loader.py # CSV/XLSX file handling
├── exports/
│ └── charts/ # Auto-generated chart images
├── requirements.txt
└── README.md
- "Create a bar chart showing total Sales by Category"
- "What are the top 5 products by profit?"
- "Show the sales trend over time"
- "Which region has the highest revenue?"
- "Create a scatter plot of Discount vs Profit"
MIT License