78 lines
2.8 KiB
PHP
78 lines
2.8 KiB
PHP
<?php
|
|
// config/qdrant.php
|
|
// Konfigurasi untuk Qdrant vector database
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Qdrant Base URL
|
|
|--------------------------------------------------------------------------
|
|
| URL Qdrant yang berjalan secara lokal atau dalam rangkaian dalaman.
|
|
| Default: http://localhost:6333
|
|
*/
|
|
'base_url' => env('QDRANT_BASE_URL', 'http://localhost:6333'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| API Key (optional)
|
|
|--------------------------------------------------------------------------
|
|
| Qdrant boleh dikonfigurasi dengan API key untuk keselamatan.
|
|
| Kosongkan jika tidak menggunakan API key.
|
|
*/
|
|
'api_key' => env('QDRANT_API_KEY', null),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Collection Name
|
|
|--------------------------------------------------------------------------
|
|
| Nama satu collection untuk semua knowledge base.
|
|
| Gunakan payload filtering untuk bezakan kategori/jenis.
|
|
*/
|
|
'collection' => env('QDRANT_COLLECTION', 'knowledge_base'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Vector Configuration
|
|
|--------------------------------------------------------------------------
|
|
| Saiz vector mesti sepadan dengan output embedding model.
|
|
| nomic-embed-text: 768 dimensi
|
|
| mxbai-embed-large: 1024 dimensi
|
|
*/
|
|
'vector' => [
|
|
'size' => (int) env('QDRANT_VECTOR_SIZE', 768),
|
|
'distance' => env('QDRANT_VECTOR_DISTANCE', 'Cosine'),
|
|
// Cosine sesuai untuk semantic similarity teks
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Search Configuration
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
'search' => [
|
|
'top_k' => (int) env('QDRANT_TOP_K', 5),
|
|
// Bilangan chunk paling relevan yang dikembalikan
|
|
'score_threshold' => (float) env('QDRANT_SCORE_THRESHOLD', 0.3),
|
|
// Tolak hasil dengan skor < threshold (0.0 - 1.0)
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Timeout (dalam saat)
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
'timeout' => [
|
|
'connect' => (int) env('QDRANT_CONNECT_TIMEOUT', 5),
|
|
'request' => (int) env('QDRANT_REQUEST_TIMEOUT', 30),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Batch Configuration
|
|
|--------------------------------------------------------------------------
|
|
| Bilangan point yang dihantar ke Qdrant dalam satu batch upsert
|
|
*/
|
|
'batch_size' => (int) env('QDRANT_BATCH_SIZE', 50),
|
|
];
|