SISTEM OTOMATISASI PEMBUATAN QUERY SQL MENGGUNAKAN SEMANTIC EMBEDDING DAN LARGE LANGUAGE MODEL (LLM)
Sistem ini merupakan aplikasi full-stack berbasis AI yang dirancang untuk melakukan otomatisasi pembuatan query SQL dari bahasa alami. Sistem mendukung arsitektur multi-database dengan kemampuan dynamic connection switching antar database rumah sakit, serta memanfaatkan Semantic Embedding dan Large Language Model (LLM) untuk menghasilkan query SQL yang kontekstual dan akurat.
Aplikasi memungkinkan pengguna untuk menuliskan pertanyaan dalam bahasa alami (Bahasa Indonesia), kemudian sistem akan:
- Menentukan database rumah sakit yang relevan
- Mengambil konteks skema dan knowledge base menggunakan embedding
- Menghasilkan query SQL secara otomatis menggunakan LLM
- Menjalankan query ke database tujuan
- Menampilkan hasil query secara real-time pada antarmuka pengguna
Sistem ini sangat cocok digunakan pada lingkungan dengan banyak database terpisah namun memiliki struktur serupa, seperti sistem informasi rumah sakit.
-
NestJS — Framework backend berbasis TypeScript yang scalable
-
Prisma ORM — Manajemen skema dan koneksi multi-database
-
PostgreSQL (Dockerized) — Database relasional dengan dukungan multi schema
-
Ollama — Local embedding service
- Model embedding: bge atau nomic
-
OpenRouter API — Penyedia Large Language Model (LLM)
-
Model LLM:
deepseek/deepseek-r1-distill-qwen-32bdeepseek/deepseek-r1-distill-llama-70b
-
- React + Vite — Antarmuka pengguna modern dan cepat
- TailwindCSS — Styling responsif dan efisien
- ✅ Konversi bahasa alami menjadi query SQL secara otomatis
- ✅ Dynamic database switching antar rumah sakit (
rs_a_db,rs_b_db, dll.) - ✅ Arsitektur multi-schema (
publicdanrag) - ✅ Eksekusi SQL dan visualisasi hasil secara real-time
- ✅ Integrasi semantic embedding untuk query yang lebih kontekstual
- ✅ Mendukung lebih dari satu model embedding dan LLM
User Query
↓
Frontend (React)
↓
Backend API (NestJS)
↓
Dynamic Database Selector
↓
Prisma Client (Multi-Database)
↓
Embedding Generator (Ollama: bge / nomic)
↓
LLM via OpenRouter (DeepSeek)
↓
PostgreSQL (rs_a_db, rs_b_db, rs_c_db, ...)
↓
Query Result → Frontend UI
Buat file .env di dalam direktori backend/:
# ===============================
# 🌐 DATABASE CONFIGURATION
# ===============================
# Default database (metadata sistem)
DATABASE_URL="postgresql://postgres:postgres@localhost:5433/rsmu_db?schema=public"
# Shadow database untuk Prisma migration
SHADOW_DATABASE_URL="postgresql://postgres:postgres@localhost:5433/rsmu_shadow?schema=public"
# ===============================
# 🧠 AI & EMBEDDING CONFIGURATION
# ===============================
# Ollama (Embedding Service)
OLLAMA_URL="http://localhost:11434"
# OpenRouter (LLM)
OPENROUTER_API_KEY="your-openrouter-api-key"
# ===============================
# ⚙️ APPLICATION CONFIG
# ===============================
PORT=3000
FRONTEND_URL="http://localhost:5173"Setiap rumah sakit menggunakan database terpisah dengan format nama:
rs_a_db
rs_b_db
rs_c_db
rs_d_db
Setiap database memiliki dua schema utama:
- public — Data utama sistem (pasien, dokter, transaksi, dll.)
- rag — Knowledge base embedding untuk semantic retrieval
git clone https://github.com/Dindamaharn/LLM-Project-SQL-Query-Generator.git
cd LLM-Project-SQL-Query-Generatordocker compose up -dDatabase tersedia di:
localhost:5433
cd backend
npm install
npx prisma migrate dev --name init
npm run start:devBackend berjalan di:
http://localhost:3000
cd ../frontend
npm install
npm run devFrontend berjalan di:
http://localhost:5173
“Tampilkan semua pasien yang dirawat bulan lalu di RS_C”
- Sistem menentukan database aktif →
rs_c_db - Mengambil konteks menggunakan embedding (bge / nomic)
- Mengirim prompt ke LLM melalui OpenRouter (DeepSeek)
- LLM menghasilkan query SQL yang sesuai
- Query dijalankan pada schema yang relevan (
public/rag) - Hasil ditampilkan secara real-time di UI
- Sistem mendukung pengembangan lebih lanjut untuk penambahan rumah sakit baru
- Model embedding dan LLM dapat diganti tanpa mengubah arsitektur utama
- Cocok digunakan sebagai sistem SQL assistant berbasis AI di lingkungan enterprise
✨ Dikembangkan sebagai proyek eksplorasi integrasi Semantic Embedding dan LLM dalam sistem basis data multi-tenant.