Indigo Chat
Aplikasi web chat untuk model bahasa Indigo (PyTorch). Server Node.js (Express) dengan
antarmuka SPA di public/, inferensi via Python (generate.py), dan MCP server
file-explorer bawaan (mcp-server.js).
Persyaratan
- Node.js β₯ 18
- Python 3.10+ dengan
torchdansafetensors(lihatrequirements.txt) - Checkpoint model Indigo (default:
../Indigo/runs/indo/indigo.safetensors)
Menjalankan
npm install
npm start # http://localhost:3000
Server membaca Python path dari config.json (pythonPath); jika tidak ada,
fallback ke python dari PATH. Konfigurasi lain (model, sampling, MCP) juga
tersimpan di config.json dan bisa diubah lewat panel Settings di UI.
Fitur
- Chat streaming β balasan model ditampilkan per event (SSE); konteks percakapan (token ids) dibawa ke giliran berikutnya.
- Settings panel β pilih checkpoint, atur temperature/top-k/top-p/max-new, saklar guard kamus dan agent MCP.
- Konfigurasi tersimpan β
config.jsonotomatis dibuat dan digabung dengan default. - Upload file β lampirkan file teks (
.txt,.py,.js, dst.) untuk diberi konteks ke model. - Riwayat chat β auto-save ke
chats/, load/kirim ulang lewat panel History. - Agent MCP β saat prompt meminta isi folder / cari / baca file, server
memanggil tool MCP
mcp-server.js(list_directory, search_files, read_file) dan menyuntikkan hasilnya ke prompt sebelum generate. - Check MCP β tombol "Check" di panel MCP mengetes koneksi ke
mcp-server.js.
API
| Endpoint | Metode | Fungsi |
|---|---|---|
/api/models |
GET | Daftar checkpoint .safetensors di runs/ |
/api/config |
GET/POST | Baca/simpan konfigurasi |
/api/generate |
POST | Struktur SSE: {type:"agent",context} lalu {text,ids} lalu [DONE] |
/api/history |
GET/POST | Daftar/simpan riwayat chat |
/api/history/:id |
GET/DELETE | Muat/hapus satu chat |
/api/upload |
POST | Upload file (multipart); balasan content untuk file teks |
/api/mcp-check |
GET | Uji koneksi MCP server + daftar tool |
/api/guard |
POST | Rasio kata Indonesia dari kamus |
MCP Server (file explorer)
mcp-server.js adalah server Model Context Protocol mandiri (stdio/JSON-RPC)
dengan tool: list_directory, read_file, search_files, search_content,
get_file_info. Uji manual:
node mcp-server.js # kirim initialize + tools/call lewat stdin
Tambahkan ke klien MCP mana pun lewat konfigurasi:
{
"mcpServers": {
"indigo-files": {
"command": "node",
"args": ["D:\\Documents\\GitHub\\indigo-chat\\mcp-server.js"]
}
}
}
Root direktori default adalah ../Indigo (atur via env MCP_ROOT).
CLI lama
chat.py (Python) adalah tes CLI interaktif dari versi sebelumnya β masih
berfungsi untuk membandingkan backend PyTorch/TensorFlow dari terminal.
Catatan
Model berukuran <1M parameter dilatih pada data kecil, jadi balasan belum koheren β aplikasi ini untuk menguji pipeline inferensi & integrasi MCP.