Files
ChatbotAI/config/qdrant.php
2026-05-18 08:56:23 +08:00

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),
];