This is a minimal implementation of the RAG model for question answering.
This is an educational project where all of the codes where explained (step by step) via a set of Arabic youtube videos. Please check the list:
| # | Title | Link | Codes |
|---|---|---|---|
| 1 | About the Course ماذا ولمـــاذا | Video | NA |
| 2 | What will we build ماذا سنبنى في المشروع | Video | NA |
| 3 | Setup your tools الأدوات الأساسية | Video | NA |
| 4 | Project Architecture | Video | branch |
| 5 | Welcome to FastAPI | Video | branch |
| 6 | Nested Routes + Env Values | Video | branch |
| 7 | Uploading a File | Video | branch |
| 8 | File Processing | Video | branch |
| 9 | Docker - MongoDB - Motor | Video | branch |
| 10 | Mongo Schemes and Models | Video | branch |
| 11 | Mongo Indexing | Video | branch |
| 12 | Data Pipeline Enhancements | Video | branch |
| 13 | Checkpoint-1 | Video | branch |
| 14 | LLM Factory | Video | branch |
| 15 | Vector DB Factory | Video | branch |
| 16 | Semantic Search | Video | branch |
| 17 | Augmented Answers | Video | branch |
| 18 | Checkpoint-1 + Fix Issues | Video | branch |
| 19 | Ollama Local LLM Server | Video | branch |
- Python 3.8 or later
- Download and install MiniConda from here
- Create a new environment using the following command:
$ conda create -n mini-rag python=3.8- Activate the environment:
$ conda activate mini-ragexport PS1="\[\033[01;32m\]\u@\h:\w\n\[\033[00m\]\$ "$ pip install -r requirements.txt$ cp .env.example .envSet your environment variables in the .env file. Like OPENAI_API_KEY value.
$ cd docker
$ cp .env.example .env- update
.envwith your credentials
$ cd docker
$ sudo docker compose up -d$ uvicorn main:app --reload --host 0.0.0.0 --port 5000Download the POSTMAN collection from /assets/mini-rag-app.postman_collection.json