An open API service indexing awesome lists of open source software.

https://github.com/faisalaffan/ragi-instant

RAG System that implement simple and fast. like ragi to make indonesian bread
https://github.com/faisalaffan/ragi-instant

document-processing embeddings hybrid-search indonesian llm pgvector production-ready rag rag-evaluation regulatory-compliance reranking retrieval-augmented-generation semantic-search vector-sesarch

Last synced: 19 days ago
JSON representation

RAG System that implement simple and fast. like ragi to make indonesian bread

Awesome Lists containing this project

README

          


🇬🇧 English




Ragi-Instant Banner




Ragi-Instant Logo


RAG production-grade untuk kepatuhan regulasi. Hybrid search, reranking, routing, deteksi halusinasi — dalam satu pipeline.


License
Status
Python

---

**Ragi-Instant** adalah sistem RAG (Retrieval-Augmented Generation) yang dibangun untuk regulatory & compliance intelligence. Melampaui siklus `embed → search → generate` ala tutorial dengan pipeline production-grade: query rewriting, intent routing, hybrid retrieval, cross-encoder reranking, context compression, structured output dengan kutipan, dan pengecekan halusinasi — semuanya ditracing dan dievaluasi otomatis.

## Pipeline

```
Pertanyaan User


Query Rewriting (LLM) "POJK terbaru pinjol" → "Peraturan OJK peer-to-peer lending 2024 2025"


Intent Router (LLM) regulation_lookup | definition | comparison | obligation_check


Hybrid Search Dense (pgvector cosine) + Sparse (PostgreSQL FTS BM25) → RRF fusion


Cohere Rerank v3 Top-40 → top-5 final


[Context Compression] Ringkasan LLM mempertahankan fakta legal (opsional)


LLM Generation GPT-4o mini / Claude Haiku + Instructor structured output


Hallucination Check Verifikasi setiap klaim terhadap konteks sumber


Jawaban + Kutipan + Confidence + Regulasi Terkait


LangFuse Trace + RAGAS Eval (async)
```

## Kemampuan Utama

**Query Rewriting**
Ekspansi kueri berbasis LLM. "POJK terbaru pinjol" menjadi "Peraturan OJK terbaru mengenai peer-to-peer lending 2024 2025" sebelum retrieval. +15-20% kualitas retrieval untuk kueri ambigu.

**Intent Routing**
Mengklasifikasikan kueri ke regulation_lookup, definition, comparison, atau obligation_check. Setiap intent dipetakan ke strategi pencarian yang berbeda (dense-only, sparse-only, atau hybrid).

**Hybrid Search**
Pencarian vektor dense (pgvector HNSW) dikombinasikan dengan pencarian kata kunci sparse (PostgreSQL FTS BM25 dengan GIN index), difusikan melalui Reciprocal Rank Fusion. Menangkap kecocokan semantik dan istilah hukum eksak.

**Reranking**
Cohere Rerank v3 cross-encoder pada kandidat hasil retrieval. Meningkatkan recall@5 secara signifikan dibanding raw vector similarity.

**Context Compression**
Ringkasan berbasis LLM yang mempertahankan angka, persentase, nomor pasal, dan definisi hukum sambil menghapus transisi dan pengulangan. Pengurangan token 40-60%.

**Structured Output & Kutipan**
Setiap jawaban disertai kutipan sumber yang menunjuk ke chunk, dokumen, halaman, dan pasal yang tepat. Bukan jawaban black-box — setiap klaim bisa diverifikasi.

**Deteksi Halusinasi**
Langkah verifikasi pasca-generasi. Setiap klaim dalam jawaban diperiksa terhadap konteks sumber. Menghasilkan skor halusinasi dan menandai klaim yang tidak didukung.

**Deteksi Perubahan Regulasi**
Unggah dua versi regulasi dan dapatkan diff terstruktur — pasal mana yang berubah, apa yang ditambahkan, apa yang dihapus — dikelompokkan berdasarkan dampak (HIGH/MEDIUM/LOW).

**Evaluasi Otomatis**
Pipeline evaluasi RAGAS bawaan dengan 30 pasangan Q&A yang dikurasi. Mengukur faithfulness, answer relevancy, dan context precision. Anda rilis dengan angka, bukan asumsi.

**Observabilitas**
LangFuse tracing end-to-end setiap langkah: query rewriting, routing, hybrid search, reranking, compression, generation, dan hallucination check. Latency dan confidence per langkah.

## Demo Aplikasi

Berikut adalah pratinjau visual dari antarmuka dashboard utama:

| Startup Splash Screen | Dashboard Sistem Utama |
|---|---|
| | |

| AI Query Workspace & Kutipan | Benchmark Evaluasi RAGAS |
|---|---|
| | |

👉 **Jelajahi galeri lengkap berisi 16 tangkapan layar dengan penjelasan detail setiap langkah pipeline di [Galeri Demo Ragi Instant](./docs/demo.md).**

## Instalasi

```bash
cd backend
pip install -e .
```

## Mulai Cepat

```bash
# 1. Salin template env dan isi API keys
cp .env.example .env
# Wajib: OPENAI_API_KEY, COHERE_API_KEY

# 2. Deploy ke VPS
make deploy

# 3. Unggah dokumen regulasi
curl -F "file=@POJK_10_2022.pdf" \
-F "title=POJK No. 10 Tahun 2022" \
http://vps:8000/api/ingest/documents

# 4. Tanya regulasi
curl -X POST http://vps:8000/api/query \
-H "Content-Type: application/json" \
-d '{"question": "Apa batas maksimum bunga pinjaman online menurut OJK?"}'

# Response:
# {
# "answer": "Berdasarkan POJK No. 10/PT. LKM/2022, batas maksimum...",
# "citations": [{"document_title": "POJK No. 10/2022", "page": 12, "quote": "..."}],
# "confidence": 0.89,
# "related_regulations": ["POJK No. 22/2023"]
# }
```

## API Reference

| Endpoint | Method | Deskripsi |
|---|---|---|
| `/health` | GET | Health check |
| `/api/ingest/documents` | POST | Unggah PDF/DOCX untuk indexing |
| `/api/ingest/documents` | GET | Daftar semua dokumen |
| `/api/ingest/documents/{id}` | GET | Detail dokumen |
| `/api/ingest/documents/{id}/chunks` | GET | Lihat chunk hasil indeks |
| `/api/query` | POST | Pipeline RAG lengkap |
| `/api/analysis/compare` | POST | Bandingkan dua versi dokumen |

## Benchmark

Diuji pada 30 pasangan Q&A dari dokumen regulasi keuangan Indonesia (POJK, PBI).

| Metrik | Skor | Target |
|---|---|---|
| Faithfulness | **0.89** | > 0.85 |
| Answer Relevancy | **0.83** | > 0.80 |
| Context Precision | **0.76** | > 0.75 |
| Avg Latency | **1.27d** | < 2.0d |
| Avg Cost/Query | **<$0.01** | < $0.01 |

*Skor dievaluasi menggunakan GPT-4o sebagai evaluator pada dataset patokan POJK & PBI.*

## 🔍 Observabilitas & Kontrol Biaya (Production-Grade)

Dalam kepatuhan regulasi dan hukum, meluncurkan pipeline RAG secara membabi buta dan mengandalkan "keberuntungan halusinasi" adalah risiko besar. **Ragi Instant** menggunakan pendekatan berorientasi rekayasa (*engineering-first*): **kami melacak dan mengukur setiap token, latensi, biaya, dan langkah perantara.**

Menggunakan **Langfuse**, seluruh alur hybrid RAG ditelusuri secara transparan:

| Penelusuran End-to-End (Spans) | Kompresi Konteks & Biaya |
|---|---|
| | |

Kami melakukan penelusuran dan audit pada setiap langkah modular:
* **Query Rewriting**: Memantau bagaimana kueri ambigu diperluas.
* **Query Intent Routing**: Memeriksa klasifikasi niat (*intent classification*) oleh LLM dan target routing.
* **Hybrid Search**: Melacak log pencarian dense pgvector & sparse PostgreSQL FTS BM25.
* **Cohere Reranking**: Mengevaluasi skor cross-encoder dan perankingan kandidat.
* **Context Compression**: Mengaudit penghematan token dan kompresi ringkasan LLM sebelum proses generasi.
* **Hallucination Check**: Memverifikasi keselarasan klaim terhadap fakta konteks sumber untuk menangkap klaim tanpa dasar.

👉 **Jelajahi trace lengkap untuk setiap langkah di [Galeri Observabilitas Langfuse](./docs/demo.md#5-production-grade-observability-langfuse).**

## Stack

| Layer | Teknologi |
|---|---|
| Document Parsing | Docling (layout-aware PDF + ekstraksi tabel) |
| Chunking | LlamaIndex SemanticSplitterNodeParser |
| Embedding | OpenAI text-embedding-3-small |
| Vector Store | pgvector (HNSW index) |
| Keyword Search | PostgreSQL FTS (BM25, GIN index) |
| Backend API | FastAPI (async) |
| Frontend | Next.js 15 + shadcn/ui + Tailwind CSS |
| Tracing | LangFuse |
| Evaluasi | RAGAS |

## Lisensi

MIT © [Muhammad Faisal Affan](https://github.com/faisalaffan)