GeoNetAgent, LDAPWeb, server-audit, server-connection
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

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:

  1. Membantu user membuat teks (email, laporan) dengan konteks personal
  2. Menjawab pertanyaan tentang codebase dan infrastruktur
  3. Membantu coding dan proses deploy
  4. 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