Giter Site home page Giter Site logo

bakrianoo / mini-rag Goto Github PK

View Code? Open in Web Editor NEW
67.0 3.0 16.0 267 KB

An Educational Project (step by step) to teach how to build a production-ready app for RAG application.

Home Page: https://www.youtube.com/watch?v=Vv6e2Rb1Q6w&list=PLvLvlVqNQGHCUR2p0b8a0QpVjDUg50wQj&pp=gAQBiAQB

License: Apache License 2.0

Python 100.00%
docker education fastapi genai python rag

mini-rag's Introduction

mini-RAG

This is a minimal implementation of the RAG model for question answering.

The Course

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 - QDrant Video branch

Requirements

  • Python 3.8 or later

Install Python using MiniConda

  1. Download and install MiniConda from here
  2. Create a new environment using the following command:
$ conda create -n mini-rag python=3.8
  1. Activate the environment:
$ conda activate mini-rag

(Optional) Setup you command line interface for better readability

export PS1="\[\033[01;32m\]\u@\h:\w\n\[\033[00m\]\$ "

Installation

Install the required packages

$ pip install -r requirements.txt

Setup the environment variables

$ cp .env.example .env

Set your environment variables in the .env file. Like OPENAI_API_KEY value.

Run Docker Compose Services

$ cd docker
$ cp .env.example .env
  • update .env with your credentials
$ cd docker
$ sudo docker compose up -d

Run the FastAPI server

$ uvicorn main:app --reload --host 0.0.0.0 --port 5000

POSTMAN Collection

Download the POSTMAN collection from /assets/mini-rag-app.postman_collection.json

mini-rag's People

Contributors

abubakr-soliman avatar bakrianoo avatar ahmdelemam avatar

Stargazers

Ammar Ahmad AbuGhaith avatar Khaled El-Saka avatar Mostafa Gamal avatar Ali avatar Ahmad Jawabreh avatar Ahmed Salah avatar  avatar Abduulah Ashraf avatar  avatar Nouhayla MOUAKKAL avatar itsmeismaill avatar Amr Samy avatar sherif negm avatar Haitame avatar MB avatar eslam khaled avatar Talal Atef  avatar Mustafa-Alhnuaiti avatar MOBHID_YOUSSEF avatar  avatar afkir mohamed avatar Omar avatar Mohamed Algebali Almoazin avatar Mahmoud Ibrahim  avatar Amr Abdellatif avatar Fares Sayah avatar OmarLamine avatar  avatar  avatar  avatar mostafa arafa avatar Nouran Darwish avatar Hossam Gamal Mostafa avatar Mahmoud Mohamed avatar Nourhan Nabil avatar Abdullah Bakir  avatar  avatar Mohamed Abd Elbaset Ahmed avatar Omar Elsherif avatar Ammar Mohamed Amin avatar Ahmad hassoun avatar SAMeh Zaghloul avatar Ahmed Breem avatar Ahmed Gameel avatar  avatar Hasan Zemzem avatar Husam avatar eslam elgogary avatar MohamedKhaled201841 avatar Karous Wissem avatar Mohamed Ali Hefnawy avatar tarek yahia avatar Omar Alsaabi avatar Muhammad Saad avatar Ahmed El Gebaly avatar ahmed mohamed fathy avatar  avatar  avatar Bassma Hassan  avatar Abdelrahman Ragab  avatar Omar Elhassani Alaoui avatar Mohamed Mohana avatar  avatar  avatar Ezzaldin Mamdouh avatar شحادة بشير avatar Mohamed Hassan avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.