- Python 3.9+ and npm installed.
- Redis server installed and running.
-
Start Redis server
Make sure Redis is running.# Start your local Redis (example for Linux/macOS): redis-server # Check if Redis is running: redis-cli ping # Should output: PONG
-
Start Celery worker
From the backend directory, start a Celery worker for background tasks:celery -A ragreader worker --loglevel=info
-
Run Django backend
Start the backend server:python manage.py runserver
-
Run the frontend
From the frontend directory, start the development server:npm install npm run dev
Once all services are running, access the app at http://localhost:5173 (or as indicated in the terminal).
Implementasi sistem Retrieval-Augmented Generation (RAG) untuk tugas akhir yang mengintegrasikan:
- Dense Retrieval
- Sparse Retrieval (BM25)
- Hybrid Retrieval
- Corrective RAG (CRAG)
- Reranking
- Multi-Hop Retrieval Orchestration
Sistem dirancang untuk meningkatkan kualitas retrieval dan mengurangi hallucination pada query kompleks yang membutuhkan multi-hop reasoning menggunakan dataset MultiHop-RAG.
Repository ini merupakan implementasi pipeline RAG terintegrasi yang menggabungkan tiga lapisan utama:
-
Core Retriever (Base RAG) Menangani retrieval dokumen menggunakan:
- Dense Retrieval berbasis embedding
- Sparse Retrieval berbasis BM25
- Hybrid Retrieval
-
Corrective RAG Wrapper (CRAG) Menambahkan mekanisme:
- Self-grading terhadap hasil retrieval
- Corrective retrieval
- Fallback retrieval ketika konteks dianggap tidak relevan
-
MultiHop Orchestrator Mengelola proses retrieval multi-tahap untuk query yang membutuhkan reasoning lintas dokumen.
Pipeline ini dievaluasi menggunakan dataset MultiHop-RAG untuk mengukur:
- Kualitas retrieval
- Kualitas generation
- Efektivitas corrective retrieval
- Dampak reranking terhadap performa akhir
Repository ini juga mengimplementasikan web untuk pengguna yang ingin mencoba pipeline ini dengan mengsubmit dokumen.
User Query
│
▼
MultiHop Orchestrator
│
▼
CRAG Wrapper
│
▼
Core Retriever
┌───────────────┬───────────────┐
│ Dense │ Sparse BM25 │
│ Retrieval │ Retrieval │
└───────────────┴───────────────┘
│
▼
Hybrid Retrieval
│
▼
Reranker
│
▼
Context Selection
│
▼
Generator
│
▼
Final Answer
- Dense Retrieval menggunakan embedding model
- Sparse Retrieval menggunakan BM25
- Hybrid Retrieval
- Corrective Retrieval (CRAG)
- Multi-Hop Query Orchestration
- Reranking menggunakan Jina Reranker
- Evaluation pipeline untuk retrieval dan generation
- Support eksperimen berbagai model retrieval dan generation
- Modular pipeline architecture
Teknologi yang digunakan berasal dari implementasi pipeline, lalu model yang digunakan adalah model terbaik berdasarkan percobaan eksperimen
- Dense Vector Retrieval
- BM25 Sparse Retrieval
- Hybrid Retrieval
gemini-embedding-2-preview
jina-reranker-v3
qwen/qwen3-30b-a3b-instruct-2507
Menggunakan dataset:
- MultiHop-RAG
Dataset ini berisi:
- Multi-hop queries
- Ground truth answers
- Supporting evidence
- Real-world news articles
Dataset digunakan untuk mengevaluasi kemampuan sistem dalam:
- Retrieval lintas dokumen
- Multi-step reasoning
- Hallucination mitigation
Retrieval Metrics
- Accuracy (Hit Rate)
- Recall@k
- Precision@k
- Mean Reciprocal Rank (MRR)
- Mean Average Precision (MAP) Generation Metrics
- BERTScore
- RAGAs
- Faithfulness
- Answer Relevancy
- Answer Correctness
- Faithfulness
- Answer Relevancy
.
├── backend/
│ ├── retrieval/
│ ├── reranker/
│ ├── crag/
│ ├── multihop/
│ ├── generation/
│ └── evaluation/
│
├── frontend/
│
├── experiments/
│
├── requirements.txt
├── docker-compose.yml
└── README.md
git clone <repository-url>
cd <repository-name>Create .env file:
OPENROUTER_API_KEY=docker-compose up --buildEksperimen dapat dilakukan dengan mengubah konfigurasi:
- Dense embedding model
- Sparse retrieval method
- Reranker model
- LLM generator
- Retrieval top-k
- Corrective retrieval threshold
Penelitian ini bertujuan untuk:
- Meningkatkan kualitas retrieval pada query multi-hop
- Mengurangi hallucination pada sistem RAG
- Mengevaluasi efektivitas corrective retrieval
- Mengukur pengaruh reranker terhadap retrieval relevance
- Membandingkan Dense, Sparse, dan Hybrid Retrieval
- Yan et al. — Corrective Retrieval-Augmented Generation
- Tang et al. — MultiHop-RAG Benchmark
- RAGAs Evaluation Framework
- BERTScore
This project is developed for academic and research purposes.