Spaces:
Running
Running
| title: Smart Advisor | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # Smart Advisor for DS and AI Students | |
| > A voice-enabled Arabic RAG-based academic advisor for new and prospective Data Science and AI students at the University College of Applied Sciences (UCAS). | |
|  | |
|  | |
|  | |
| --- | |
| ## π About | |
| The Smart Advisor is a graduation project that helps students who just graduated from high school get instant, accurate advice about the Data Science and AI specialization at UCAS β admission requirements, study plan, career paths, and scholarships. Unlike generic AI tools (ChatGPT, Gemini), our system grounds every answer in **official UCAS documents** β eliminating hallucination β and supports both **text and Arabic voice** input. | |
| **Phase 1 (Completed):** Research, literature review, methodology design. | |
| **Phase 2 (Completed):** Implementation, evaluation, and deployment. The system is fully built, tested, and merged into `main`. | |
| --- | |
| ## π§ How It Works | |
| ``` | |
| Student speaks/types question | |
| β | |
| Speech-to-Text (Whisper Arabic) | |
| β | |
| RAG Pipeline (retrieval + generation) | |
| β | |
| Text-to-Speech (Arabic TTS) | |
| β | |
| Student receives spoken/text answer | |
| ``` | |
| Every step is grounded in official UCAS documents stored in a vector database (ChromaDB). If the system can't find a confident answer, it routes the question to a human advisor instead of guessing. | |
| --- | |
| ## π₯ Team | |
| | Member | Role | Focus | | |
| |---|---|---| | |
| | **Fatma Alzahraa Alhabbash** | Project Lead + Backend Architect | RAG pipeline Β· retrieval logic Β· LLM integration Β· fallback mechanism | | |
| | **Roaa Alhaddad** | Data Engineer | Data collection for the knowledge base Β· FAQ surveys Β· document processing | | |
| | **Saja Abdalaal** | Voice & NLP Engineer | STT Β· TTS Β· NLP preprocessing | | |
| | **Shahd Ethalathini** | Frontend + Knowledge Base Engineer | UI Β· KB chunking Β· embedding generation Β· storing embeddings in ChromaDB | | |
| **Supervisor:** Dr. Sanaa Al-Sayegh | |
| **Institution:** University College of Applied Sciences β Gaza | |
| --- | |
| ## ποΈ Repository Structure | |
| ``` | |
| smart-advisor/ | |
| βββ docs/ Documentation, reports | |
| βββ data/ Raw and processed data (mostly gitignored) | |
| βββ src/ | |
| β βββ knowledge_base/ Document processing β chunking β embeddings β ChromaDB | |
| β βββ rag/ Retrieval and generation pipeline | |
| β βββ voice/ STT and TTS modules | |
| β βββ ui/ FastAPI backend + Gradio interface | |
| β βββ utils/ Shared helpers (logging, config) | |
| βββ notebooks/ Jupyter experiments | |
| ``` | |
| --- | |
| ## π Getting Started | |
| ### Prerequisites | |
| - Python 3.10 or higher | |
| - Git | |
| - ~5GB free disk space (for model weights) | |
| - (Optional) GPU for faster STT inference | |
| ### Setup | |
| 1. **Clone the repository** | |
| ```bash | |
| git clone https://github.com/smart-advisor-ucas/smart_advisor.git | |
| cd smart-advisor | |
| ``` | |
| 2. **Create a virtual environment** | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. **Install dependencies** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. **Configure environment variables** | |
| ```bash | |
| cp .env.example .env | |
| # Open .env and fill in your API keys | |
| ``` | |
| 5. **Add the ChromaDB knowledge base** | |
| The `data/chroma_db/` folder is **not tracked in GitHub** (it's git-ignored). Create it and populate it before running the backend. | |
| Without this step, the backend will start but retrieval will fail because the collection won't exist. | |
| 7. **Run the backend** | |
| ```bash | |
| uvicorn src.ui.main:app --reload --port 8000 | |
| ``` | |
| Swagger docs are available at `http://127.0.0.1:8000/docs`. | |
| 6. **Run the interface** | |
| ```bash | |
| cd src/ui/frontend | |
| npm install | |
| npm run dev | |
| ``` | |
| The React frontend talks to the backend over the `/chat`, `/chat/reset`, and `/chat/history/{session_id}` endpoints. | |
| --- | |
| ## Branch Strategy | |
| We use a simple branching model: | |
| - **`main`** β protected, only updated via pull requests | |
| - **`integration/merge-all`** β integration branch where all feature branches merge first | |
| - **`feature/rag`** β backend RAG pipeline work | |
| - **`feature/frontend-ui`** β UI work | |
| - **`feature/voice`** β STT/TTS work | |
| --- | |
| ## β Testing | |
| - **Unit testing** was carried out at the end of each development phase, on each component in isolation (retrieval, metadata filtering, fallback logic, profile extraction, etc.) before it was merged. | |
| - **Integration/overall testing** was performed after all feature branches (`feature/rag`, `feature/frontend-ui`, `feature/voice`) were merged into `main`, to validate the end-to-end flow from onboarding through retrieval to fallback escalation. | |
| - Test cases and results are tracked under `tests/`. | |
| --- | |
| ## π Documentation | |
| - [Phase 1 Report](docs/phase1_report.pdf) | |
| - [Architecture Overview](docs/architecture.md) | |
| --- | |
| ## π License | |
| This project is licensed under the MIT License β see [LICENSE](LICENSE) for details. | |
| --- | |
| ## π Acknowledgments | |
| - Dr. Sanaa Al-Sayegh, our supervisor, for invaluable guidance throughout the project. | |
| - The Department of Computer Engineering at UCAS for academic support. | |
| - The open-source NLP community whose tools make this project possible. | |
| --- | |
| *Built with β€οΈ by the Smart Advisor team β UCAS, Gaza, 2025-2026* | |