# ═══════════════════════════════════════════════════════════════════ # 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}"