You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.6 KiB
3.6 KiB
ADR-001: Arsitektur AI On-Premise — GPU Node + RAG + Memory
Status: Accepted Tanggal: 2026-07-06 Decider: Tim IT GIS Portal
Konteks
Organisasi ingin mengimplementasikan AI on-premise yang bisa:
- Membantu user membuat teks (email, laporan) dengan konteks personal
- Menjawab pertanyaan tentang codebase dan infrastruktur
- Membantu coding dan proses deploy
- Belajar dari kebiasaan user (personalisasi)
Semua ini harus berjalan 100% on-premise tanpa mengirim data ke cloud.
Hardware yang Tersedia
| Node | Spec | Peran |
|---|---|---|
PC-Multimedia 10.100.1.14 |
Core Ultra 7 265K, 64 GB RAM, RTX 5060 Ti ~16 GB VRAM | GPU inference node (utama) |
VM aiopr 10.100.1.26 |
48 vCPU, 62 GB RAM, no GPU | CPU inference node (fallback) |
PostgreSQL 10.100.1.25 |
— | Vector DB (pgvector) |
Keputusan
1. Dual-node Ollama
- PC-Multimedia = node utama GPU inference → model besar (14B), cepat
- VM .26 = fallback CPU inference + background embedding/indexing
- Consumer (geonet-console) default ke PC-Multimedia, fallback ke VM .26
2. Tiga Level AI Capability (implementasi bertahap)
Level 1 — Context Injection (Fase 1)
Profil user LDAP (nama, jabatan, atasan) di-inject ke system prompt setiap request.
- Effort: rendah
- Value: tinggi — AI langsung "kenal" user
Level 2 — RAG + Memory (Fase 2–3)
- Codebase RAG: seluruh repo di-index ke pgvector (
geonet_project_search), di-retrieve saat relevan - User Memory: pola interaksi per user disimpan ke DB, di-retrieve untuk personalisasi
- Contoh: user sering minta template email ke Pak Taufik → AI ingat gaya & penerima
Level 3 — Deploy Agent (Fase 4, opsional)
AI dengan tool calling: bisa SSH ke server, docker exec, php artisan, git — untuk bantu deploy otomatis.
3. Model yang Dipilih
| Tujuan | Model | VRAM |
|---|---|---|
| Coding & deploy assist | qwen2.5-coder:14b |
~9 GB |
| Chat umum / email / teks | qwen2.5:14b |
~9 GB |
| Embedding / RAG | nomic-embed-text |
~0.3 GB |
| Fallback ringan | qwen2.5:7b (di VM .26) |
~5 GB CPU |
4. Storage Model
Model disimpan di T:\ollama\models (Samsung SSD 9100 PRO 2TB, 323 GB free) — drive tercepat di PC-Multimedia.
Konsekuensi
Positif
- Privasi penuh — kode dan data user tidak keluar jaringan
- Biaya operasional nol (hardware sudah ada)
- Latensi rendah (LAN lokal)
- Bisa index seluruh codebase tanpa batas token cloud
Negatif / Risiko
- PC-Multimedia adalah workstation, bukan server — availability tergantung PC nyala
- Kualitas model 14B di bawah GPT-4/Claude untuk task kompleks
- Fine-tuning (Level 3+) butuh data latih yang cukup banyak
- GPU inference hanya bisa 1 request sekaligus (VRAM shared)
Mitigasi
- Power plan PC-Multimedia: "High Performance", disable sleep
- Fallback otomatis ke VM .26 jika PC-Multimedia tidak reachable
- Fine-tuning hanya untuk template spesifik, bukan model utama
Alternatif yang Ditolak
| Alternatif | Alasan ditolak |
|---|---|
| Full cloud (OpenAI/Anthropic) | Kode dikirim ke luar, biaya bulanan |
| Fine-tuning sebagai langkah pertama | Overkill untuk kasus email/chat; RAG sudah cukup |
| Hanya VM .26 (tanpa GPU) | Lambat untuk model 14B, tidak ada GPU |
Roadmap Implementasi
Fase 1 (1-2 hari) Install Ollama GPU di PC-Multimedia
Fase 2 (3-5 hari) pgvector + indexer codebase monorepo
Fase 3 (1 minggu) Integrasi geonet-console: /api/v1/ai/chat + user memory
Fase 4 (opsional) Deploy agent: tool calling SSH/docker
Detail task → docs/todo.md