Upload a CSV. Ask anything in plain English. Get newspaper-styled charts and a formatted Word report β no code required.
Insight is a conversational data analyst. You bring the data, it brings the reasoning. Under the hood, a LangChain Pandas Agent executes Python against your dataset in a sandboxed environment β you just ask questions.
The full loop:
Upload CSV β Ask in plain English β Get analysis + charts β Export .docx report
| Upload & Configure | Ask Questions |
|---|---|
![]() |
![]() |
| Generated Charts | Exported Report |
|---|---|
![]() |
![]() |
Conversational analysis Ask questions the way you'd ask a colleague. "What columns have missing data?", "Show me the correlation between price and quantity", "Which category has the highest average revenue?" β the agent figures out the code, runs it, and explains the result.
Newspaper-aesthetic visualisations
Every chart is rendered in a consistent vintage editorial style β #f2ead8 paper background, ink-black axes, muted classic palette, serif fonts where available. Charts look like they belong in a printed report, not a Jupyter notebook.
Multi-plot responses Complex queries can generate up to 5 charts in a single response, each saved and displayed inline. Scatter plots, histograms, box plots, correlation matrices β whatever the data calls for.
Docx export Export the full conversation β questions, analysis, and embedded charts β as a formatted Word document. The report preserves the newspaper aesthetic: charts print exactly as they appear on screen.
Multiple model support Switch between Groq-hosted models depending on the task:
llama3-70b-8192β best accuracy (default)llama3-8b-8192β faster responsesmistral-saba-24bβ alternative reasoning stylecompound-betaβ experimental
Adjustable temperature 0.0 for deterministic analysis, up to 1.0 for exploratory pattern-finding.
| Layer | Technology |
|---|---|
| UI | Streamlit |
| Agent | LangChain Pandas Agent |
| LLM inference | Groq API (Llama 3, Mistral) |
| Data | Pandas |
| Visualisation | Matplotlib Β· Seaborn |
| Export | python-docx |
| Config | python-dotenv |
main.py β App entry point, session management, layout
βββ agent.py β DataAnalysisAgent class, LLM orchestration, plot generation
βββ ui_components.py β All Streamlit rendering logic
βββ utils.py β DataFrame loading, session state helpers
βββ config.py β Model list, temperature bounds, app constants
βββ style.css β Custom Streamlit component styling
Agent flow for each query:
User query
β
Enhanced prompt (includes df metadata + vintage chart instructions)
β
LangChain Pandas Agent (executes Python in sandbox)
β
Text analysis + temp_plot_N_1.png β¦ temp_plot_N_5.png
β
Rendered in chat β optionally exported to .docx
The agent is initialised once per config tuple (api_key, model, temperature) and cached β reinitialisation only happens when settings change.
Prerequisites: Python 3.8+, a free Groq API key
git clone https://github.com/GitTanish/Insight.git
cd Insight
pip install -r requirements.txtSet your API key:
echo "GROQ_API_KEY=your_key_here" > .envRun:
streamlit run main.pyOpen http://localhost:8501 β upload a CSV and start asking.
"What are the top 3 most interesting patterns in this dataset?"
"Show me a histogram of the sales column"
"Which month had the highest revenue?"
"Find all rows where quantity > 100 and price < 50"
"Create a correlation matrix for all numeric columns"
"Are there any outliers in the age column?"
"What's the average cost efficiency grouped by category?"
| Variable | Description | Required |
|---|---|---|
GROQ_API_KEY |
Groq API key (starts with gsk_) |
Yes |
File limits:
- Max rows: 1,000,000
- Encodings: UTF-8, Latin-1, CP1252
- Delimiters: comma, semicolon, tab
The LangChain Pandas Agent executes Python code to answer queries. Execution is sandboxed within the Streamlit environment. Only upload CSV files you trust, and avoid datasets containing sensitive personal information.
"Agent stopped due to max iterations" β query is too broad. Try something more specific, e.g. "histogram of column X" rather than "analyse everything".
"Invalid API key format" β key must start with gsk_. Get one free at console.groq.com.
Charts not appearing β the agent saves plots to the working directory. Ensure the app has write permissions in the project folder.
Slow responses β switch to llama3-8b-8192 in the sidebar for faster (slightly less accurate) responses.
git checkout -b feature/your-feature
git commit -m 'add: your feature'
git push origin feature/your-feature
# open a pull requestTanish Saroj Β· github.com/GitTanish Β· linkedin.com/in/tanishsaroj



