iSchool Advising Support Chatbot
A team project that answers ISDA and MLIS advising questions from official SJSU iSchool sources, with citations and a path to human help.
Overview
Supports academic advisors with source-based answers while keeping student records out of the bot and routing distress to a human handoff.
I build this chatbot with Marios Tawdros and Joshua Rieta, advised by Dr. Karen Wang. Our goal is to support academic advisors in their work without replacing them.
The app uses Flask and OpenAI / Azure OpenAI for retrieval-augmented generation over official SJSU iSchool sources. Students select ISDA or MLIS, and hybrid BM25 retrieval finds material for their program. Answers cite their sources, and invented links are stripped from replies.
The mobile-friendly UI includes one-click PDF export. Students can report an issue, and a reviewer dashboard lets the team review those reports. Reports are automatically deleted after 90 days.
Student records stay out of the bot entirely. Students in distress are routed to a human handoff instead of an automated reply. CI runs pytest and pip-audit, and the app is deployed on Azure App Service.
Development Process
Scoping advising support
We use official SJSU iSchool sources for ISDA and MLIS advising questions. The program selector keeps the student's program explicit, and student records stay out of the bot.
Retrieval and citations
The Flask app uses OpenAI / Azure OpenAI with RAG and hybrid BM25 retrieval. Answers include source citations, and invented links are stripped before the reply reaches the student.
Review and deployment
Issue reporting feeds a reviewer dashboard, with reports automatically deleted after 90 days. We evaluate answers against the advising test set, including distress and sensitive-data cases. CI runs pytest and pip-audit, and we deploy to Azure App Service.
Challenges
- A generated answer can include an invented link. We strip those links and keep source citations tied to official SJSU iSchool material.
- Advising questions can involve private records or distress. We keep student records out of the bot and route students in distress to a human handoff.
What I Learned
- Source citations and the ISDA / MLIS selector make it easier to see which program and material an answer covers.
- Issue reports give the team a way to review answers, while automatic deletion limits how long those reports are kept.