Spaces:
Configuration error
Configuration error
| # ARGObot: Academic Advising Chatbot Powered with AI Agent | |
| ARGObot is a custom-built Retrieval-Augmented Generation (RAG) chatbot designed to answer university-related questions using either OpenAI or Google Gemini. It reads from official student handbooks and optionally supplements answers using Google Search. | |
| ## Features | |
| - Switchable backend (OpenAI or Gemini) | |
| - LangGraph for stateful chat memory | |
| - RAG pipeline using LangChain + ChromaDB | |
| - Clean Streamlit interface | |
| - Modular file structure | |
| - Secure `.env`-based configuration | |
| --- | |
| ## Project Structure | |
| ``` | |
| src/ | |
| βββ agents/ # Tools and prompt templates | |
| βββ chains/ # RAG pipelines | |
| βββ config/ # Environment and secrets | |
| βββ interface/ # Streamlit UI | |
| βββ state.py # LangGraph state and workflow | |
| βββ main.py # Unified app entrypoint | |
| ``` | |
| --- | |
| ## Getting Started | |
| ### 1. Clone the Repository | |
| ```bash | |
| git clone https://github.com/yourusername/argobot.git | |
| cd argobot | |
| ``` | |
| ### 2. Install Requirements | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ### 3. Configure Environment | |
| Create a `.env` file based on `.env.example`: | |
| ```env | |
| MODEL_PROVIDER=openai | |
| OPENAI_API_KEY=your-openai-key | |
| GOOGLE_API_KEY=your-gemini-key | |
| PDF_PATH=resources/22_studenthandbook-22-23_f2.pdf | |
| ``` | |
| ### 4. Run the App | |
| ```bash | |
| streamlit run src/main.py | |
| ``` | |
| --- | |
| ## How It Works | |
| 1. Loads a PDF knowledge base (e.g., UWF Student Handbook) | |
| 2. Splits it into text chunks using LangChain | |
| 3. Embeds and stores chunks in a vector store | |
| 4. Uses LangGraph to manage conversation state | |
| 5. Responds via OpenAI or Gemini based on your configuration | |
| --- | |
| ## Technologies Used | |
| - [LangChain](https://www.langchain.com/) | |
| - [LangGraph](https://docs.langgraph.dev/) | |
| - [Streamlit](https://streamlit.io/) | |
| - [OpenAI](https://platform.openai.com/) | |
| - [Google Gemini](https://ai.google.dev/) | |
| - [ChromaDB](https://docs.trychroma.com/) | |
| --- | |
| ## Security Note | |
| Do **not** share your `.env` or `credentials.json` publicly. Always use `.env.example` for version control. | |
| --- | |
| ## License | |
| MIT License β free for personal and commercial use. | |
| --- | |
| ## Author | |
| **Maryam Taeb** | |
| [Contact me](mailto:mr@uwf.edu) for collaboration or custom deployments. |