Exam Analytics Pro is a high-performance system designed to predict and analyze the difficulty of assessment items using a hybrid approach of Traditional Machine Learning and Agentic AI (LangGraph/LangChain).
- Vectorized Inference: Uses TF-IDF and specialized scikit-learn models (Logistic Regression & Decision Trees) for fast, data-driven baseline predictions.
- Agentic Reasoning: Employs a LangGraph state machine to orchestrate multi-step analysis by LLMs (OpenAI, Gemini, Groq).
- Pedagogical Analysis: Provides deep insights into Bloom's Taxonomy levels, cognitive depth, and linguistic complexity.
Switch between state-of-the-art LLM providers seamlessly:
- Google Gemini: Reliable and fast pedagogical analysis.
- Groq (Llama 3): Ultra-low latency inference for real-time reasoning.
- OpenAI (GPT-4o): High-fidelity conceptual complexity mapping.
- CSV Batch Processing: Upload hundreds of questions for instant difficulty distribution reports.
- Advanced Insights: Correlate question length, tag count, and engagement scores with predicted difficulty.
- Explainable AI: Click a button to see exactly why an AI agent classified a question a certain way.
graph TD
A[Raw Exam Dataset] -->|CSV Upload| B[Dashboard]
B -->|Preprocessing| C[Feature Matrix]
subgraph Agentic_Workflow
direction TB
Start((START)) --> ML_Predictor[ML classification Node]
ML_Predictor -->|Baseline: Hard/Med/Easy| LLM_Reasoner[LLM Reasoning Node]
LLM_Reasoner -->|Contextual Analysis| Synthesizer[Synthesis Node]
Synthesizer --> End((END))
end
C --> Start
ML_Predictor -.-> Models[(scikit-learn Models)]
LLM_Reasoner -.-> APIs{LLM APIs}
End -->|Final Verdict| B
B -->|UI Output| Visualization[Distribution Charts & Reports]
- Python 3.12+
- Virtual Environment (recommended)
-
Clone the repository:
git clone https://github.com/praggCode/Exam-Analytics-System.git cd Exam-Analytics-System -
Set up virtual environment:
python3 -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Start the Streamlit Server:
streamlit run ui/app.py
-
Configure AI Settings:
- Open the app at
http://localhost:8501. - In the sidebar, select your preferred LLM Provider (Groq, Gemini, or OpenAI).
- Enter your API Key.
- Open the app at
-
Analyze Data:
- Upload a CSV containing a
questioncolumn. - Click "Analyze Difficulty" to see ML results.
- Use the "Generate AI Reasoning" button for a deep-dive analysis of your top questions.
- Upload a CSV containing a
├── data/ # Processed and raw datasets
├── src/
│ ├── ai_engine.py # LangGraph workflow definition
│ ├── model_train.py # Model training pipeline
├── models/ # Saved joblib models (.joblib)
├── ui/
│ ├── app.py # Streamlit UI implementation
├── requirements.txt # Project dependencies
└── README.md # Project documentation
- Dashboard: Streamlit
- ML Framework: scikit-learn, joblib
- Orchestration: LangChain, LangGraph
- NLP: Beautiful Soup (BS4), re, TF-IDF
- Data Science: Pandas, NumPy, Seaborn, Matplotlib
This project is for educational and professional assessment analytics. Built with ❤️ and AI.
For a detailed report on the LangChain implementation, see langchain_report.md.