AI-Assisted Supporter Chatbot for New RMIT Students
This chatbot helps new RMIT students understand academic policies such as academic integrity, assessment extensions, appeals, and course progress.
It provides accurate, citation-backed answers based on official RMIT policies using Retrieval-Augmented Generation (RAG) with AWS Bedrock (Claude Sonnet / Haiku).
- 🎨 Streamlit-based modern UI (mobile-friendly)
- ⚙️ RAG with FAISS + sentence-transformers
- 🧠 Context-aware conversation memory
- 💬 Automatic topic/entity clarification
- 📚 Auto-indexing of uploaded policy JSON files
- 🧩 Responsible-AI guardrails
- 📖 Clause-level citations for every factual answer
git clone https://github.com/cloudwhj/DataCommAssm3.gitpython -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activatepip install -r requirements.txtstreamlit run app.pyThe app will start on http://localhost:8501
academic-policies-chatbot/
├── app.py # Main Streamlit application
├── requirements.txt
├── .gitignore
├── data/
│ ├── policies/ # Policy JSON files
│ └── index/ # Auto-generated FAISS index
└── README.md
- Policy Data → PDFs are converted into JSON (
metadata,structure,clauses,subclauses). - Indexing → Text chunks embedded with
sentence-transformersand stored in FAISS. - Retrieval → Queries are embedded and matched against the index.
- Generation → Claude (Sonnet/Haiku) answers using the retrieved clauses.
- Clarification → The chatbot rewrites vague queries (“this”, “it”) and asks clarifying questions when needed.
- Responds only using official RMIT policies.
- Adds citations to every factual statement.
- Politely refuses unrelated or personal queries.
- Displays a clear disclaimer for transparency.
Try:
- “What counts as plagiarism?”
- “How do I apply for an assessment extension?”
- “How do I appeal a final course result?”
- “What happens if I fail the same course twice?”
| Parameter | Default | Description |
|---|---|---|
| Top-k | 6 | Number of retrieved clauses |
| Min similarity | 0.35 | Confidence threshold |
| Temperature | 0.2 | Creativity control |
| Top-p | 0.9 | Response diversity |
- Streamlit — Web UI framework
- AWS Bedrock (Claude 3) — LLM inference
- boto3 — AWS SDK for Python
- sentence-transformers — Embeddings
- FAISS — Vector similarity search
- PyPDF2 — PDF parsing
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
│ Streamlit UI │──→──│ Retrieval (FAISS) │──→──│ Bedrock Claude API │
└──────────────┘ └──────────────┘ └──────────────────┘
▲ │
│ ▼
└───── Temporary AWS Credentials via boto3
Once the app is running, go to:
http://localhost:8501
and test various queries.
Each response includes relevant policy citations for verification.
- Wong Hon Jun – s4060180
- Student 2 – s
- Student 3 – s RMIT University, Bachelor of Computer Science
This project is for educational purposes under RMIT’s Academic Use Policy.
Do not redistribute or deploy publicly with institutional credentials.