Spaces:
Sleeping
Sleeping
Project Title: Academic Advisement Bot
Description
The Academic Advisement Bot is a Streamlit application designed to assist students with course advisement, leveraging a Retrieval-Augmented Generation (RAG) system. It provides detailed and accurate answers to student queries regarding course prerequisites, corequisites, semester plans, and general education requirements based on the Computer Engineering Technology (CET) curriculum. The bot also includes user authentication, API key management, and an automated evaluation system for its performance.
Features
- Conversational AI: Utilizes a RAG chain to provide context-aware answers to academic queries.
- Course Information: Provides detailed information on CET courses, including prerequisites, corequisites, and semester-wise plans.
- User Authentication: Secure login and registration system with password hashing and strength validation.
- API Key Management: Allows users to set and manage their OpenAI API keys for model interaction.
- Automated Evaluation: Includes a feature to run automated evaluations against predefined Q&A pairs to assess the bot's accuracy using cosine similarity.
- Session Management: Handles user sessions and timeouts.
- Interactive UI: Built with Streamlit for an intuitive and user-friendly experience.
Technologies Used
- Python 3.x
- Streamlit: Web application framework.
- LangChain: For building the RAG conversational chain.
- FAISS: For efficient similarity search on course embeddings.
- Sentence Transformers: For generating embeddings.
- OpenAI API: For language model interactions (requires user-provided API key).
- SQLite3: For user authentication and API key storage.
- Pandas: For data manipulation and evaluation results.
- Scikit-learn: For cosine similarity calculation in evaluation.
- Docker: For containerization.
- Dotenv: For environment variable management.
Project Structure
cet_advisement_bot/
βββ .gitattributes
βββ Dockerfile
βββ README.md <-- This file
βββ requirements.txt
βββ docs/
β βββ original_cat.pdf <-- Original course catalog document
β βββ original_vector/ <-- FAISS index for course embeddings
β βββ index.faiss
β βββ index.pkl
βββ queries/
β βββ QueriesDataSet_Final.xlsx <-- Dataset for automated evaluation
βββ src/
βββ app.py <-- Main Streamlit application, handles UI, auth, and chat
βββ chains.py <-- Defines the RAG chain and retriever
βββ embeddings.py <-- Handles embedding model loading
βββ history.py <-- Manages chat history for conversational context
βββ streamlit_app.py <-- (Potentially deprecated or merged into app.py, needs clarification)
Setup and Installation
Prerequisites
- Python 3.x
- Docker (optional, for containerized deployment)
- An OpenAI API Key (to be provided within the application)
Local Setup
- Clone the repository:
git clone https://github.com/your-repo/cet_advisement_bot.git cd cet_advisement_bot - Create a virtual environment and activate it:
python -m venv venv .\venv\Scripts\activate # On Windows source venv/bin/activate # On macOS/Linux - Install dependencies:
pip install -r requirements.txt - Prepare data files:
The application expects
original_cat.pdfand theoriginal_vectordirectory (containingindex.faissandindex.pkl) to be present in thedocs/directory. These files are crucial for the RAG system. Ensure these are downloaded and placed correctly. (Note: If these files are large and hosted externally, instructions for downloading them usinggdownor similar tools should be added here.) - Run the Streamlit application:
The application will open in your web browser.streamlit run src/app.py
Docker Deployment
- Build the Docker image:
docker build -t cet-advisement-bot . - Run the Docker container:
Access the application atdocker run -p 8501:8501 cet-advisement-bothttp://localhost:8501in your browser.
Usage
- Login/Register: Upon launching the application, you will be prompted to log in or register a new account.
- Set OpenAI API Key: Navigate to the "User Panel" in the sidebar and provide your OpenAI API key. This is required for the chatbot functionality.
- Ask Questions: Once authenticated and with a valid API key, you can start asking questions about the CET curriculum.
- Automated Evaluation: The "Admin Panel" (or "User Panel" if admin features are integrated) allows you to run an automated evaluation of the bot's performance against a predefined set of questions.
Contributing
(Placeholder for contribution guidelines)
License
(Placeholder for license information)
Contact
(Placeholder for contact information)