A modular Streamlit application for data analysis, visualization, and AI-powered insights. This app supports CSV file uploads, handles mixed data types (numerical, categorical, and temporal), and provides robust data analysis and visualization features.
The home page provides a clean and intuitive interface for uploading your CSV file. It includes a sidebar for file upload and settings, along with a main area that displays the uploaded data in a tabular format.
This section allows you to explore various visualizations based on your dataset. You can generate distribution plots, correlation heatmaps, box plots, and more. The interface is interactive, enabling you to customize the visualizations based on your preferences.
Leverage the power of AI to gain deeper insights into your data. This feature integrates with OpenAI's API to provide textual insights, key findings, and recommendations. Simply click the "Generate Insights" button, and the app will analyze your data to deliver actionable insights.
-
Data Loading:
- Upload CSV files.
- Automatic encoding detection using
chardet. - Comprehensive file validation and error handling.
-
Data Analysis:
- Basic statistics (mean, median, std dev, min, max).
- Missing value analysis.
- Outlier detection.
- Categorical data analysis (value counts, unique values).
-
Visualizations:
- Distribution plots (histograms, KDE).
- Correlation heatmaps.
- Box plots for outlier visualization.
- Missing value heatmaps.
- Temporal data plots (time series).
-
AI-Powered Insights:
- Integration with OpenAI API for generating textual insights.
- Narrative generation about data patterns.
- Key findings and recommendations.
-
User Interface:
- Clean, modern interface using Streamlit.
- Sidebar for file upload and settings.
- Tabs for different analysis sections.
- Progress indicators and loading states.
- Download options for reports and visualizations.
- Python 3.8 or higher.
- Required libraries (install via
requirements.txt).
-
Clone the repository:
git clone https://github.com/azeebneuron/InsightGenie.git cd streamlit-data-analysis-app -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile in the root directory and add yourAIPROXY_TOKEN:AIPROXY_TOKEN=your_api_token_here
-
Run the Streamlit app:
streamlit run app.py
-
Upload a CSV File:
- Use the sidebar to upload a CSV file.
- The app will automatically detect the file encoding and load the data.
-
Explore Data Analysis:
- View basic statistics, missing values, and outliers.
- Analyze categorical data (value counts, unique values).
-
Visualize Data:
- Explore distribution plots, correlation heatmaps, and box plots.
- Visualize missing values and temporal data.
-
Generate AI Insights:
- Click the "Generate Insights" button to get AI-powered insights about your data.
-
Download Results:
- Download visualizations and reports for further analysis.
project/
│
├── src/
│ ├── __init__.py
│ ├── config.py # Configuration and environment variables
│ ├── data_loader.py # File handling and data loading
│ ├── data_processor.py # Data analysis and processing
│ ├── visualizer.py # Visualization functions
│ ├── ai_analyzer.py # AI-powered analysis
│ └── utils.py # Utility functions
│
├── app.py # Main Streamlit application
├── requirements.txt # List of dependencies
└── .env # Environment variables
-
Core Libraries:
streamlitpandasnumpyseabornmatplotlibscikit-learnchardethttpxpython-dotenv
-
AI Integration:
- OpenAI API (via
AIPROXY_TOKEN).
- OpenAI API (via
Contributions are welcome! Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your feature" - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.


