Skip to content

abduljalal14/RAG-Mistrall-Supabase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG Mistral Supabase

Sistem RAG (Retrieval-Augmented Generation) berbasis Node.js yang menggabungkan:

  • Mistral API untuk embedding dan chat completion
  • Supabase (PostgreSQL + pgvector) untuk penyimpanan dokumen, pencarian semantik, dan riwayat chat

UI sederhana tersedia di:

  • http://localhost:3000

Fitur

  • Tambah dokumen dan simpan embedding ke database
  • Chat berbasis konteks dokumen relevan (RAG)
  • Simpan dan ambil riwayat chat per session
  • CRUD dokumen
  • Statistik dan health check API

Teknologi

  • Node.js + Express
  • Axios
  • Supabase JS Client
  • Mistral API
  • UUID

Struktur Project

.
|- index.html          # UI sederhana untuk tambah dokumen + chat
|- main.js             # Implementasi server Express + semua endpoint
|- server.js           # Entry point (require ./main)
|- .env.example        # Contoh environment variable
|- package.json

Prasyarat

  • Node.js 18+ (disarankan LTS)
  • Project Supabase aktif
  • Tabel/function database untuk RAG sudah dibuat (termasuk RPC match_documents)
  • API key Mistral

Setup

  1. Install dependency:
npm install
  1. Copy env:
cp .env.example .env

Di Windows PowerShell:

Copy-Item .env.example .env
  1. Isi .env:
MISTRAL_API_KEY=your_mistral_api_key
SUPABASE_URL=https://your-project-ref.supabase.co
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
DATABASE_PASSWORD=your_database_password
PORT=3000
NODE_ENV=development
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100

Menjalankan Project

Development:

npm run dev

Production:

npm start

Server akan berjalan di:

  • http://localhost:3000

Endpoint API

Health & Stats

  • GET /api/health
  • GET /api/stats

Documents

  • POST /api/documents - tambah dokumen
  • GET /api/documents - list dokumen (page, limit, search, tags)
  • GET /api/documents/:id - detail dokumen
  • PUT /api/documents/:id - update dokumen
  • DELETE /api/documents/:id - hapus dokumen

Chat

  • POST /api/chat - chat RAG
  • GET /api/chat/history/:sessionId - riwayat chat per session
  • DELETE /api/chat/history/:sessionId - hapus riwayat chat session
  • GET /api/chat/sessions - list session chat

Contoh Request

Tambah dokumen:

curl -X POST http://localhost:3000/api/documents \
  -H "Content-Type: application/json" \
  -d "{\"title\":\"Node.js\",\"content\":\"Node.js adalah runtime JavaScript\"}"

Chat:

curl -X POST http://localhost:3000/api/chat \
  -H "Content-Type: application/json" \
  -d "{\"message\":\"Apa itu Node.js?\"}"

Catatan Keamanan

  • Jangan commit .env ke repository.
  • Gunakan SUPABASE_SERVICE_KEY hanya di backend server.
  • Jika secret pernah terekspos, lakukan rotasi key.

License

MIT

About

RAG berbasis Node.js menggunakan Mistral API dan Supabase + UI web sederhana.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors