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:
- π Sistem mencari informasi relevan dari UUD 1945
- π§ AI memproses dan memahami konteks pertanyaan
- β Memberikan jawaban yang akurat dan mudah dipahami
- π§ 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
- Python 3.8+
- Ollama dengan model Gemma2:2b
- 4GB+ RAM (minimum)
# 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# 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?"}'LawChain menggunakan dua sistem berbeda untuk memberikan fleksibilitas maksimal:
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
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
- π 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
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
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
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
π Dokumen PDF β π§ Pemrosesan Teks β βοΈ Chunking Cerdas β π§ Embeddings β π FAISS Store
β
π Respons Final β π€ Gemma2:2b β π Context Prompt β π Dokumen Retrieved β π Query Processing
Alur Sederhana:
π Pertanyaan β π Pencarian Database β π§ AI Processing β β
Jawaban Akurat
Proses Detail:
- Input: User mengirim pertanyaan tentang UUD 1945
- Search: Sistem mencari informasi relevan di database
- Context: AI memahami konteks dan hubungan antar informasi
- Generate: AI menghasilkan jawaban yang akurat dan mudah dipahami
| 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 |
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 siniapp/services/β Dua sistem AI (LangChain & Native)data/UUD1945-MPR.pdfβ Sumber pengetahuan utamastorage/vector_store_*β Database pencarian cerdas
# 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{
"answer": "Jawaban lengkap dari AI",
"sources": ["Pasal yang relevan"],
"confidence": 0.95,
"service_used": "native"
}- Install β
pip install -r requirements.txt - Setup Ollama β
ollama pull gemma2:2b - Run β
python main.py - Test β Buka
http://localhost:8000/docs
π Server berjalan di: http://localhost:8000