130 lines
4.5 KiB
Plaintext
130 lines
4.5 KiB
Plaintext
# ═══════════════════════════════════════════════════════════════════
|
|
# SISTEM PANGKALAN PENGETAHUAN — Laravel 11
|
|
# Salin fail ini menjadi .env dan isi nilai yang sesuai
|
|
# ═══════════════════════════════════════════════════════════════════
|
|
|
|
# ── Aplikasi ──────────────────────────────────────────────────────
|
|
APP_NAME="Pangkalan Pengetahuan"
|
|
APP_ENV=local
|
|
APP_KEY=
|
|
APP_DEBUG=true
|
|
APP_URL=http://localhost:8000
|
|
APP_LOCALE=ms
|
|
APP_FALLBACK_LOCALE=ms
|
|
APP_FAKER_LOCALE=ms_MY
|
|
|
|
APP_MAINTENANCE_DRIVER=file
|
|
|
|
BCRYPT_ROUNDS=12
|
|
|
|
# ── Log ───────────────────────────────────────────────────────────
|
|
LOG_CHANNEL=stack
|
|
LOG_STACK=single
|
|
LOG_LEVEL=debug
|
|
|
|
# ── Database MySQL ────────────────────────────────────────────────
|
|
DB_CONNECTION=mysql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=knowledge_base
|
|
DB_USERNAME=root
|
|
DB_PASSWORD=
|
|
|
|
# ── Sesi ──────────────────────────────────────────────────────────
|
|
SESSION_DRIVER=database
|
|
SESSION_LIFETIME=480
|
|
SESSION_ENCRYPT=false
|
|
SESSION_PATH=/
|
|
SESSION_DOMAIN=null
|
|
|
|
# ── Queue ─────────────────────────────────────────────────────────
|
|
# Gunakan 'database' untuk development, 'redis' untuk production
|
|
QUEUE_CONNECTION=database
|
|
|
|
# ── Cache ─────────────────────────────────────────────────────────
|
|
CACHE_STORE=database
|
|
|
|
# ── Storage ───────────────────────────────────────────────────────
|
|
FILESYSTEM_DISK=local
|
|
|
|
# ── Ollama ────────────────────────────────────────────────────────
|
|
# URL Ollama yang berjalan secara lokal
|
|
OLLAMA_BASE_URL=http://localhost:11434
|
|
|
|
# Model untuk chat/generate
|
|
# Pilihan: llama3, mistral, qwen2, gemma2
|
|
OLLAMA_CHAT_MODEL=llama3
|
|
|
|
# Model untuk embedding
|
|
# Pilihan: nomic-embed-text (disyorkan), mxbai-embed-large
|
|
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
|
|
|
|
# Timeout (saat)
|
|
OLLAMA_CONNECT_TIMEOUT=5
|
|
OLLAMA_CHAT_TIMEOUT=120
|
|
OLLAMA_EMBED_TIMEOUT=30
|
|
|
|
# Retry
|
|
OLLAMA_RETRY_TIMES=2
|
|
OLLAMA_RETRY_SLEEP=1000
|
|
|
|
# Parameter model
|
|
OLLAMA_TEMPERATURE=0.1
|
|
OLLAMA_TOP_P=0.9
|
|
OLLAMA_NUM_CTX=4096
|
|
|
|
# ── Qdrant ────────────────────────────────────────────────────────
|
|
QDRANT_BASE_URL=http://localhost:6333
|
|
QDRANT_API_KEY=
|
|
QDRANT_COLLECTION=knowledge_base
|
|
|
|
# Saiz vector — MESTI sepadan dengan model embedding
|
|
# nomic-embed-text: 768
|
|
# mxbai-embed-large: 1024
|
|
QDRANT_VECTOR_SIZE=768
|
|
QDRANT_VECTOR_DISTANCE=Cosine
|
|
|
|
# Carian
|
|
QDRANT_TOP_K=5
|
|
QDRANT_SCORE_THRESHOLD=0.3
|
|
|
|
# Timeout
|
|
QDRANT_CONNECT_TIMEOUT=5
|
|
QDRANT_REQUEST_TIMEOUT=30
|
|
|
|
# Batch size untuk upsert
|
|
QDRANT_BATCH_SIZE=50
|
|
|
|
# ── Knowledge Base ────────────────────────────────────────────────
|
|
# Upload
|
|
KB_MAX_FILE_SIZE=20480
|
|
KB_STORAGE_DISK=local
|
|
|
|
# Chunking
|
|
KB_CHUNK_MAX_WORDS=500
|
|
KB_CHUNK_OVERLAP_WORDS=75
|
|
KB_CHUNK_MIN_WORDS=30
|
|
|
|
# RAG
|
|
KB_RAG_MAX_CHUNKS=5
|
|
KB_RAG_MAX_CONTEXT_WORDS=2000
|
|
|
|
# Rate limiting chatbot (request per minit per IP)
|
|
KB_CHAT_RATE_LIMIT=20
|
|
|
|
# Queue names
|
|
KB_QUEUE_INGESTION=default
|
|
KB_QUEUE_EMBEDDING=default
|
|
KB_QUEUE_CHAT_LOG=default
|
|
|
|
# ── Mail (optional) ───────────────────────────────────────────────
|
|
MAIL_MAILER=log
|
|
MAIL_HOST=127.0.0.1
|
|
MAIL_PORT=2525
|
|
MAIL_USERNAME=null
|
|
MAIL_PASSWORD=null
|
|
MAIL_FROM_ADDRESS="noreply@majlis.gov.my"
|
|
MAIL_FROM_NAME="${APP_NAME}"
|
|
|
|
VITE_APP_NAME="${APP_NAME}"
|