Skip to content

LawChain Backend API adalah sistem backend cerdas yang menggunakan teknologi Retrieval-Augmented Generation (RAG) untuk memberikan jawaban akurat tentang Undang-Undang Dasar 1945 melalui Google Gemma2:2b Large Language Model.

Notifications You must be signed in to change notification settings

Hidayattt24/be-lawchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›οΈ LawChain - Asisten Hukum Konstitusi AI

🎯 Gambaran Umum

LawChain Backend API v2.0 adalah sistem backend cerdas yang menjawab pertanyaan tentang Undang-Undang Dasar 1945 dengan akurasi tinggi. Sistem ini menggunakan teknologi Retrieval-Augmented Generation (RAG) yang menggabungkan Google Gemma2:2b AI model dengan database pengetahuan hukum yang terstruktur.

Cara Kerja Sederhana:

  1. πŸ” Sistem mencari informasi relevan dari UUD 1945
  2. 🧠 AI memproses dan memahami konteks pertanyaan
  3. βœ… Memberikan jawaban yang akurat dan mudah dipahami

✨ Fitur Unggulan

  • 🧠 Google Gemma2:2b: AI model canggih dengan 2 miliar parameter
  • πŸ” Deteksi Konteks Cerdas: Otomatis mengenali pertanyaan hukum vs non-hukum
  • ⚑ Dual Architecture: Dua sistem berbeda untuk fleksibilitas maksimal
  • πŸ“Š Akurasi Tinggi: Tingkat akurasi 85-98% untuk pertanyaan konstitusi
  • πŸ“š Database Lengkap: Berdasarkan UUD 1945 dari 5 sumber resmi
  • πŸš€ Ready-to-Use: API yang mudah diintegrasikan

FastAPI Gemma2 Python LangChain

πŸš€ Siap Produksi β€’ 🧠 Google Gemma2:2b β€’ ⚑ Performa Optimal


οΏ½ Quick Start

πŸ“‹ Prerequisites

  • Python 3.8+
  • Ollama dengan model Gemma2:2b
  • 4GB+ RAM (minimum)

⚑ Instalasi Cepat

# 1. Clone repository
git clone https://github.com/your-repo/LLM-LawChain.git
cd LLM-LawChain

# 2. Install dependencies
pip install -r requirements.txt

# 3. Install dan jalankan Ollama + Gemma2
ollama pull gemma2:2b
ollama pull nomic-embed-text

# 4. Jalankan server
python main.py

🎯 Penggunaan

# Server berjalan di: http://localhost:8000
# Dokumentasi API: http://localhost:8000/docs

# Contoh request:
curl -X POST "http://localhost:8000/api/chat" \
     -H "Content-Type: application/json" \
     -d '{"question": "Apa itu Pancasila menurut UUD 1945?"}'

πŸ” Mengapa Dual Architecture?

LawChain menggunakan dua sistem berbeda untuk memberikan fleksibilitas maksimal:

🦾 Sistem LangChain (Framework-based)

Keunggulan:

  • βœ… Pengembangan Cepat: Framework siap pakai dengan banyak fitur
  • βœ… Mudah Maintenance: Kode yang terstruktur dan modular
  • βœ… Rich Features: Banyak tool dan integrasi built-in

Cocok untuk: Prototyping, development, dan implementasi standar

⚑ Sistem Native (Custom-built)

Keunggulan:

  • βœ… Performa Maksimal: Dioptimalkan khusus untuk hukum Indonesia
  • βœ… Resource Efficient: Memory dan CPU usage minimal
  • βœ… Custom Logic: Disesuaikan dengan kebutuhan spesifik

Cocok untuk: Production environment dan performa tinggi

πŸ’‘ Manfaat Dual System

  • πŸ”„ Backup System: Jika satu sistem bermasalah, yang lain tetap bisa digunakan
  • 🎯 Fleksibilitas: Pilih sistem sesuai kebutuhan (speed vs features)
  • πŸ§ͺ A/B Testing: Bandingkan performa kedua sistem
  • πŸ“ˆ Future-proof: Mudah upgrade dan improve

🎯 Strategi Dual Implementation LawChain

graph LR
    A[Client Request] --> B{Service Selection}
    B -->|Development/Testing| C[LangChain Service]
    B -->|Production/Performance| D[Native Service]
    C --> E[Framework-based RAG]
    D --> F[Optimized RAG]
    E --> G[Response]
    F --> G
Loading

Manfaat Dual Approach:

  • πŸ”„ Fallback System: Switch antar service jika ada masalah
  • πŸ§ͺ A/B Testing: Compare performa kedua implementasi
  • 🎯 Use Case Specific: Pilih implementasi sesuai kebutuhan
  • πŸ“ˆ Continuous Improvement: Belajar dari kedua approach untuk optimasi

πŸ—οΈ Arsitektur Sistem

graph TB
    subgraph "Client Layer"
        A[Web Browser]
        B[Mobile App]
        C[API Client]
    end

    subgraph "Server Infrastructure"
        subgraph "API Gateway"
            D[FastAPI Server]
            E[CORS Handler]
        end

        subgraph "Service Layer"
            F[LawChain Service Coordinator]
            G[LangChain Service]
            H[Native Service]
        end

        subgraph "Data Processing"
            I[Document Loader]
            J[Text Chunking]
            K[Embedding Generator]
        end

        subgraph "Storage Layer"
            L[(Vector Store FAISS)]
            M[(Document Cache)]
            N[(Source PDFs)]
        end

        subgraph "AI Engine"
            O[Ollama Runtime]
            P[Gemma2:2b LLM]
            Q[Nomic Embeddings]
        end
    end

    A --> D
    B --> D
    C --> D
    D --> E
    E --> F
    F --> G
    F --> H
    G --> I
    H --> I
    I --> J
    J --> K
    K --> L
    L --> M
    M --> N
    G --> O
    H --> O
    O --> P
    O --> Q
Loading

πŸ”„ Alur Pipeline RAG

πŸ“„ Dokumen PDF β†’ πŸ”§ Pemrosesan Teks β†’ βœ‚οΈ Chunking Cerdas β†’ 🧠 Embeddings β†’ πŸ“Š FAISS Store
                                                                                        ↓
πŸ“ Respons Final ← πŸ€– Gemma2:2b ← πŸ“ Context Prompt ← πŸ“š Dokumen Retrieved ← πŸ” Query Processing

πŸ—οΈ Cara Kerja Sistem

Alur Sederhana:

πŸ“ Pertanyaan β†’ πŸ” Pencarian Database β†’ 🧠 AI Processing β†’ βœ… Jawaban Akurat

Proses Detail:

  1. Input: User mengirim pertanyaan tentang UUD 1945
  2. Search: Sistem mencari informasi relevan di database
  3. Context: AI memahami konteks dan hubungan antar informasi
  4. Generate: AI menghasilkan jawaban yang akurat dan mudah dipahami

πŸ› οΈ Teknologi Utama

Komponen Teknologi Fungsi
AI Engine Google Gemma2:2b Menghasilkan jawaban cerdas
Search FAISS + Embeddings Mencari informasi relevan
Database Vector Store Menyimpan pengetahuan UUD
API FastAPI Interface komunikasi
Documents PyMuPDF Memproses dokumen PDF

πŸ“ Struktur File Penting

LLM-LawChain/
β”œβ”€β”€ πŸ“„ main.py                     # ⚑ Server utama - jalankan ini!
β”œβ”€β”€ πŸ“„ requirements.txt            # πŸ“¦ Daftar package yang dibutuhkan
β”‚
β”œβ”€β”€ πŸ“ app/                        # 🏠 Aplikasi inti
β”‚   β”œβ”€β”€ πŸ“ core/                   # 🌐 API endpoints
β”‚   β”œβ”€β”€ πŸ“ services/               # πŸ› οΈ Logika bisnis (LangChain + Native)
β”‚   β”œβ”€β”€ πŸ“ models/                 # πŸ“‹ Data models
β”‚   └── πŸ“ utils/                  # πŸ”§ Helper functions
β”‚
β”œβ”€β”€ πŸ“ config/                     # βš™οΈ Pengaturan sistem
β”œβ”€β”€ πŸ“ data/                       # πŸ“š Dokumen UUD 1945 (PDF)
β”œβ”€β”€ πŸ“ storage/                    # πŸ’Ύ Database vector (knowledge base)
└──  logs/                       # πŸ“ Log sistem

File Penting:

  • main.py β†’ Start server di sini
  • app/services/ β†’ Dua sistem AI (LangChain & Native)
  • data/UUD1945-MPR.pdf β†’ Sumber pengetahuan utama
  • storage/vector_store_* β†’ Database pencarian cerdas

πŸ“‹ API Documentation

πŸ”— Endpoints Utama

# Chat dengan AI
POST /api/chat
{
  "question": "Jelaskan tentang hak asasi manusia dalam UUD 1945"
}

# Cek status sistem
GET /health

# Dokumentasi lengkap
GET /docs  # Swagger UI

πŸ“Š Response Format

{
  "answer": "Jawaban lengkap dari AI",
  "sources": ["Pasal yang relevan"],
  "confidence": 0.95,
  "service_used": "native"
}

🎯 Siap Memulai?

  1. Install β†’ pip install -r requirements.txt
  2. Setup Ollama β†’ ollama pull gemma2:2b
  3. Run β†’ python main.py
  4. Test β†’ Buka http://localhost:8000/docs

πŸš€ Server berjalan di: http://localhost:8000


πŸ›οΈ Dibuat dengan ❀️ untuk Sistem Hukum Indonesia

LawChain Backend API - Mendemokratisasi akses pengetahuan konstitusi melalui AI

Dibuat dengan Python Didukung oleh Gemma2 Dioptimalkan untuk Indonesia


πŸš€ Siap untuk menjelajahi hukum konstitusi Indonesia dengan AI?

About

LawChain Backend API adalah sistem backend cerdas yang menggunakan teknologi Retrieval-Augmented Generation (RAG) untuk memberikan jawaban akurat tentang Undang-Undang Dasar 1945 melalui Google Gemma2:2b Large Language Model.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published