An intelligent chatbot created during the Llama Impact Hackathon, designed specifically for Birla Brainiacs School. This assistant helps students, parents, and staff access academic information through an intuitive chat interface.
-
Smart Information Retrieval
- Crawls Birla Brainiacs School website for latest information
- RAG (Retrieval Augmented Generation) system for accurate responses
- Comprehensive coverage of:
- Academic Calendar
- Exam & Test Schedules
- Course Portions
-
Intelligent Response System
- Simultaneously searches both the school website and RAG system
- Combines results from both sources for comprehensive answers
- Leverages web content for current information and RAG system for detailed knowledge
- Provides clear "Information not found" responses when needed
- Python 3.12 or higher
- Poetry (for dependency management)
- Docker (for running the Restack services)
- Active Together AI account with API key
- Active SerpAPI account with API key
- Active Qdrant account with API key
-
Start Restack Engine
docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main
-
Access Web UI
http://localhost:5233
-
Clone Repository
git clone https://github.com/manjunathshiva/birlabrainiacs-schoolbot cd birlabrainiacs-schoolbot
-
Install Dependencies
poetry install
-
Setup Environment
Copy
.env.example
to.env
and configure required API keys:cp .env.example .env # Edit .env and add your TOGETHER_API_KEY, SERPAPI_KEY, QDRANT_HOST and QDRANT_API_KEY
-
Activate Poetry Environment
poetry shell
-
IDE Configuration
- Use the Poetry interpreter path shown after shell activation
- Configure in VSCode/Cursor:
- Select Python Interpreter
- Choose the poetry virtual environment path
-
Start Backend Services
poetry run services
This will start the Restack service with the defined workflows and functions.
-
Launch FastAPI Server
poetry run app
-
Start Streamlit Frontend
poetry run streamlit run frontend.py
Test the endpoint directly:
curl -X POST \
http://localhost:8000/api/schedule \
-H "Content-Type: application/json" \
-d '{"query": "What are the skill development certificate courses offered by School ?", "count": 1}'
birlabrainiacs-schoolbot/
├── src/
│ ├── __init__.py
│ ├── app.py # FastAPI application
│ ├── client.py # Client implementations
│ ├── services.py # Core services
│ ├── functions/
│ │ ├── bb/ # Birla Brainiacs specific functions
│ │ │ ├── schema.py
│ │ │ └── search.py
│ │ └── llm/ # LLM related functions
│ │ └── chat.py
│ └── workflows/ # Workflow definitions
│ └── workflow.py
├── data/
│ └── Academic Calender 2024-25.pdf.md # Processed academic data
├── frontend.py # Streamlit UI
├── ingestion.py # Data ingestion scripts
├── pyproject.toml # Poetry dependencies
├── .env.example # Environment variables template
├── .gitignore
└── README.md
We welcome contributions! Please feel free to submit issues and enhancement requests.
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built during Llama Impact Hackathon
- Powered by Together AI
- Uses LlamaIndex for RAG implementation
- Frontend built with Streamlit
- Backend powered by FastAPI
- Workflow managed by Restack
- Document Processing:
- LlamaParse: Advanced PDF parsing for:
- Color-coded academic calendars
- Complex table structures
- Formatted text conversion to markdown
- Preservation of semantic meaning in calendar layouts
- LlamaParse: Advanced PDF parsing for:
Key LlamaParse contribution: Enhanced the RAG system's understanding of calendar data by maintaining the structural and visual relationships present in the original PDF format.
Created with ❤️ for Birla Brainiacs School