First commit
This commit is contained in:
86
config/ollama.php
Normal file
86
config/ollama.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
// config/ollama.php
|
||||
// Konfigurasi untuk Ollama API (local LLM + embedding)
|
||||
// Nilai diambil dari .env supaya mudah tukar tanpa ubah code
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Ollama Base URL
|
||||
|--------------------------------------------------------------------------
|
||||
| URL Ollama yang berjalan secara lokal atau dalam rangkaian dalaman.
|
||||
| Default: http://localhost:11434
|
||||
*/
|
||||
'base_url' => env('OLLAMA_BASE_URL', 'http://localhost:11434'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Model Chat (LLM)
|
||||
|--------------------------------------------------------------------------
|
||||
| Model yang digunakan untuk chat/generate.
|
||||
| Contoh: llama3, mistral, qwen2, gemma2
|
||||
*/
|
||||
'chat_model' => env('OLLAMA_CHAT_MODEL', 'llama3'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Model Embedding
|
||||
|--------------------------------------------------------------------------
|
||||
| Model yang digunakan untuk jana embedding vector.
|
||||
| Cadangan: nomic-embed-text (pilihan terbaik untuk teks Melayu/English)
|
||||
| Alternatif: mxbai-embed-large
|
||||
*/
|
||||
'embedding_model' => env('OLLAMA_EMBEDDING_MODEL', 'nomic-embed-text'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Timeout (dalam saat)
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'timeout' => [
|
||||
'connect' => (int) env('OLLAMA_CONNECT_TIMEOUT', 5),
|
||||
'chat' => (int) env('OLLAMA_CHAT_TIMEOUT', 120),
|
||||
'embed' => (int) env('OLLAMA_EMBED_TIMEOUT', 30),
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Retry Configuration
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'retry' => [
|
||||
'times' => (int) env('OLLAMA_RETRY_TIMES', 2),
|
||||
'sleep' => (int) env('OLLAMA_RETRY_SLEEP', 1000), // milliseconds
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Chat Parameters
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'chat' => [
|
||||
'temperature' => (float) env('OLLAMA_TEMPERATURE', 0.1),
|
||||
// Rendah = lebih deterministik, sesuai untuk RAG
|
||||
'top_p' => (float) env('OLLAMA_TOP_P', 0.9),
|
||||
'num_ctx' => (int) env('OLLAMA_NUM_CTX', 4096),
|
||||
// Context window — bergantung pada model
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| RAG System Prompt
|
||||
|--------------------------------------------------------------------------
|
||||
| Prompt sistem untuk kawalan jawapan RAG.
|
||||
| Dipisah dari code supaya mudah disesuaikan.
|
||||
*/
|
||||
'rag_system_prompt' => env(
|
||||
'OLLAMA_RAG_SYSTEM_PROMPT',
|
||||
'Anda adalah pembantu maklumat rasmi untuk jabatan kerajaan tempatan. ' .
|
||||
'Jawab soalan berdasarkan konteks yang diberikan SAHAJA. ' .
|
||||
'Jika maklumat tidak terdapat dalam konteks, jawab: ' .
|
||||
'"Maaf, saya tidak menemui maklumat berkaitan dalam pangkalan pengetahuan kami. ' .
|
||||
'Sila hubungi pejabat kami untuk maklumat lanjut." ' .
|
||||
'Jangan reka-reka jawapan. Gunakan Bahasa Melayu yang formal.'
|
||||
),
|
||||
];
|
||||
Reference in New Issue
Block a user