Gerard - A Retrieval Augmented Generation based Education tool to answer questions based on course related materials
A Retrieval Augmented Generator based Education tool, that has a role based login and has file upload support to a vector db. This application also has a support for chat that retrieves and uses data off the files uploaded. Backend support is via fast api (python) and has a frontend face of React JS (Next JS - typescript).
- Docker
- Kubernetes (For streamlined deployments, load balancers and auto scaling)
- Fast API (Python)
- Milvus Vector DB (Document upload support)
- Attu Vector DB Client (Document upload support visualization)
- Minio (Document upload caching on server)
- Postgres SQL db (for user data collection support)
- React JS - Next JS (For chat support, teacher login and file upload UX support)
- Autoscalable Multi model Ollama Service
You need to have docker installed.
git clone git@github.com:AlphaH7/Gerard.git
cd Gerard
docker-compose up --build
If all services run well and are up you must see the following on docker desktop -
You can access analytics preview at /analytics route
You can access created courses, topics and uploded contents at /courses route
You can access the swagger API doc at /backend/apis/docs route
Gerard/
│
├── backend/
│ ├── main.py
│ ├── database.py
│ ├── models.py
│ ├── schemas.py
│ ├── auth.py
│ ├── requirements.txt
│ └── Dockerfile
│
├── frontend/
│ ├── .eslintrc.json
│ ├── .prettierrc
│ ├── Dockerfile
│ ├── package.json
│ ├── pages/
│ │ ├── //all individual routes
│ ├── api/
│ │ └── api.js
│ └── context/
│ └── AuthContext.js
│
├── k8s/
│ ├── backend-deployment.yaml
│ ├── frontend-deployment.yaml
│ ├── postgres-deployment.yaml
│ ├── backend-autoscaler.yaml
│
└── docker-compose.yml
This project is under MIT License. Please read the same carefully. Lets contribute and access Open source software responsibly.
Made with ♥ - Alistier X.