An AI-powered platform for analyzing agent chat transcripts about Washington Post articles using lightweight LLMs, visual EDA, and an interactive frontend.
Designed to summarize conversations, detect sentiments, and deliver insights โ all through a modular, API-driven architecture.
โ Modular Data Pipeline โ Clean ingestion, cleaning, and transformation
๐ EDA + Profiling โ Dataset summaries, word clouds, sentiment plots
๐ง LLM Summarizer โ Uses Flan-T5-small
๐ฌ Sentiment Classification โ CardiffNLP RoBERTa Sentiment
๐ FastAPI Backend โ 3 REST endpoints with Pydantic validation
๐ผ๏ธ Streamlit Frontend โ Interactive UI for real-time transcript analysis
๐ฆ Model Caching โ Offline-ready with locally saved models
๐งช Evaluation Pipeline โ Accuracy and BLEU score metrics
Agentic_AI_ChatAnalyzer/
โโโ app/ # Core app logic (API, services, utils)
โโโ data/ # Dataset and output CSVs
โโโ models/ # Locally saved HuggingFace models
โโโ notebooks/ # EDA and profiling notebook
โโโ scripts/ # Model downloader and batch inference
โโโ streamlit_app/ # UI client (integrated with FastAPI)
โโโ main.py # FastAPI entrypoint
โโโ requirements.txt # Python dependencies
โโโ .gitignore
โโโ README.mdflowchart LR
A["User Input via Streamlit UI"] --> B["POST Transcript to FastAPI API"]
B --> C["LLM Summarizer (Flan-T5)"]
B --> D["Sentiment Classifier (RoBERTa)"]
C --> E["Summary Output"]
D --> F["Sentiment per Agent"]
E --> G["Response JSON to Streamlit"]
F --> G
G --> H["Visualization: WordClouds + Metrics"]
# 1. Clone the repo
git clone https://github.com/yashdew3/Agentic-AI-Chat-Analyzer.git
cd Agentic_AI_ChatAnalyzer
# 2. Create and activate environment (optional)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Download local LLM + sentiment models (run once)
python scripts/download_models.pyuvicorn main:app --reload- Access Swagger Docs: http://localhost:8000/docs
streamlit run streamlit_app/app_ui.py-
Analyze transcripts visually
-
Paste chats and see live:
SummarySentiment InsightsWord CloudsArticle Links
| Method | Endpoint | Description |
|---|---|---|
| GET | /summary |
Returns dataset stats |
| POST | /transform |
Preprocess and clean new chat input |
| POST | /insights |
Summarizes, classifies sentiment, returns insights |
{
"content": [
{"agent": "agent_1", "message": "Letโs discuss the article on the new football rule change."},
{"agent": "agent_2", "message": "Yes, it's causing a lot of debate on ESPN."}
],
"article_url": "https://www.washingtonpost.com/sports/football-rule-change"
}
| Layer | Tools Used |
|---|---|
| Backend | FastAPI, Uvicorn, Pydantic |
| Frontend | Streamlit, Matplotlib, WordCloud |
| NLP Models | HuggingFace Transformers: Flan-T5, RoBERTa |
| Analysis | Pandas, Seaborn, ydata-profiling |
| LLM Hosting | Locally saved models in /models/ |
-
๐ Add JWT authentication
-
๐ณ Dockerize backend & frontend for deployment
-
โ๏ธ Deploy on Render, Railway, or HuggingFace Spaces
-
๐ค Export chat reports (PDF/CSV)
-
๐ฌ Multi-transcript support with database
MIT License ยฉ Yash Dewangan
If you liked this project, give it a โญ star on GitHub and feel free to fork it!
Feel free to connect or suggest improvements!
- Built by Yash Dewangan
- ๐Github: YashDewangan
- ๐งEmail: [email protected]
- ๐Linkedin: YashDewangan
Contributions, issues, and feature requests are welcome! Feel free to check the issues page (if you have one) or open a new issue to discuss changes. Pull requests are also appreciated.