Vector DB
Fitur Vector Database (Vector DB) menyediakan kemampuan pencarian semantik di seluruh basis pengetahuan organisasi Anda. Fitur ini memungkinkan agen AI dan obrolan untuk mengambil informasi yang relevan dari dokumen, meningkatkan respons mereka dengan pengetahuan kontekstual.
Gambaran Umum
Vector DB memungkinkan Anda untuk:
- Mengindeks dokumen teks dan lampiran untuk pencarian semantik
- Menentukan ruang lingkup pencarian dengan parameter dan filter
- Mengintegrasikan pengambilan pengetahuan ke dalam sistem agen AI dan obrolan
- Menandai dan mengatur dokumen untuk pengambilan terstruktur
- Mengontrol perilaku pencarian dengan opsi preprocessing dan postprocessing lanjutan
Sistem menggunakan vector embedding untuk memahami makna dokumen, memungkinkan pencarian berdasarkan kesamaan konseptual daripada hanya berdasarkan pencocokan kata kunci.
VectorDB Settings
Konfigurasi global untuk sistem Vector Database.
Kolom Konfigurasi
| Kolom | Deskripsi |
|---|---|
| Enabled | Toggle utama untuk mengaktifkan fungsionalitas Vector DB di seluruh sistem |
| Include Help Article | Ketika diaktifkan, secara otomatis mengindeks Help Articles ke dalam basis pengetahuan |
| Status | Kolom sistem yang menampilkan status build saat ini (Built successfully/Updating) |
| Tags | Mendefinisikan tag khusus untuk kategorisasi dan penyaringan dokumen |
Konfigurasi Tag
Tag memungkinkan metadata terstruktur pada dokumen untuk pencarian tersaring:
| Kolom | Deskripsi |
|---|---|
| Name | Pengenal tag unik (misalnya, "User", "Application") |
| Type | Tipe data untuk nilai tag: string, bool, int64, atau float32 |
| System Generated | Menunjukkan apakah tag dibuat secara otomatis oleh sistem |
VectorDB Document
Dokumen adalah unit konten inti yang diindeks dalam Vector Database.
Kolom Dokumen
| Kolom | Deskripsi |
|---|---|
| Title | Nama tampilan untuk dokumen, digunakan dalam hasil pencarian |
| Type | Tipe konten - baik "Text" untuk konten langsung atau "Attachment" untuk file |
| Status | Status sinkronisasi (Pending/Syncing/Synced/Error) |
| Text Content | Untuk tipe Text: Konten teks yang akan diindeks |
| Attachment | Untuk tipe Attachment: File yang akan diproses dan diindeks |
| Tags | Tag metadata khusus untuk penyaringan dan kategorisasi |
| Reference DocType | Kolom sistem yang terhubung ke DocType sumber |
| Reference Document | Kolom sistem yang terhubung ke dokumen sumber |
| System Generated | Menunjukkan pembuatan otomatis oleh proses sistem |
| Last Synced | Waktu sinkronisasi terakhir yang berhasil |
| Error Message | Detail dari setiap kegagalan sinkronisasi |
Tipe Dokumen
Dokumen Teks
- Konten teks yang langsung dimasukkan melalui editor teks
- Mendukung Rich Text Format dan konten terstruktur
- Ideal untuk FAQ, kebijakan, dan artikel pengetahuan
Dokumen Lampiran
- Format yang didukung: PDF, DOCX, TXT, MD, dan lainnya
- Secara otomatis mengekstrak dan mengindeks konten teks
- Mempertahankan referensi ke file asli
Alur Status Dokumen
- Pending: Baru dibuat, menunggu sinkronisasi awal
- Syncing: Saat ini sedang diproses dan diindeks
- Synced: Berhasil diindeks dan dapat dicari
- Error: Gagal sinkronisasi, periksa pesan error
Mengelola Dokumen
Membuat Dokumen
- Navigasikan ke DocType VectorDB Document
- Klik "Add VectorDB Document"
- Masukkan judul dan pilih tipe
- Tambahkan konten atau lampirkan file
- (Opsional) tambahkan tag untuk kategorisasi
- Simpan untuk memasukkan dokumen ke antrian sinkronisasi
Operasi Jumlah Besar (Bulk)
- Gunakan fitur impor data untuk pembuatan dokumen dalam jumlah besar
Tag Dokumen
Tag memungkinkan penyaringan presisi dalam pencarian:
{
"Department": "sales",
"Region": "north",
"Year": 2024,
"Confidential": false
}
VectorDB Search Scope
Ruang lingkup pencarian menentukan konfigurasi pencarian yang dapat digunakan kembali dengan parameter dan filter.
Konfigurasi Scope
| Kolom | Deskripsi |
|---|---|
| Name | Pengenal unik untuk ruang lingkup pencarian |
| Application | Konteks aplikasi untuk pengelompokan organisasi |
| Active | Aktifkan/nonaktifkan scope tanpa penghapusan |
| Filter (JSON) | Kriteria filter dalam format JSON untuk seleksi dokumen |
Parameter Pencarian
| Kolom | Deskripsi | Default |
|---|---|---|
| Limit | Jumlah maksimum hasil yang dikembalikan | 10 |
| Dense Weight | Keseimbangan antara pencarian semantik (1.0) dan literal (0.0). Rentang: 0.2-1.0 | 0.5 |
Opsi Pre-Processing
| Kolom | Deskripsi |
|---|---|
| Rewrite Conversation | Memformulasikan ulang query dalam percakapan multi-turn untuk pemahaman konteks yang lebih baik |
Opsi Post-Processing
| Kolom | Deskripsi | Default |
|---|---|---|
| Rerank Switch | Aktifkan pemeringkatan ulang hasil untuk relevansi yang ditingkatkan | Off |
| Rerank Model | Model untuk proses pemeringkatan ulang: "base-multilingual-rerank" atau "m3-v2-rerank" | base-multilingual-rerank |
| Retrieve Count | Jumlah kandidat untuk pemeringkatan ulang (harus ≥ limit) | 25 |
| Rerank Only Chunk | Pemeringkatan ulang berdasarkan konten saja, tidak termasuk judul | Off |
| Chunk Diffusion Count | Menyertakan chunk teks di sekitarnya (0-5) | 0 |
| Chunk Group | Menggabungkan dan mengurutkan chunk berdasarkan urutan dokumen | Off |
| Get Image Link | Menghasilkan tautan unduhan sementara untuk gambar yang telah di embed | Off |
Contoh Filter
Filter JSON menggunakan operator untuk mendefinisikan kondisi pada kolom skalar (tag). Operator yang didukung meliputi:
- in: Nilai harus ada dalam array yang ditentukan
- gt: Lebih besar dari
- gte: Lebih besar dari atau sama dengan
- lt: Kurang dari
- lte: Kurang dari atau sama dengan
Filter Kolom Tunggal (String)
{
"op": "in",
"field": "Department",
"value": ["hr", "finance"]
}
Filter Rentang (Numerik)
{
"op": "range",
"field": "Year",
"gt": 2020,
"lte": 2024
}
Kondisi Berganda (Logika AND)
{
"op": "range",
"field": "Priority",
"gte": 1,
"lte": 5
}
Filter Boolean
{
"op": "in",
"field": "Confidential",
"value": [false]
}
Contoh Filter Kompleks
Untuk menggabungkan beberapa filter, susun dengan tepat berdasarkan skema tag Anda:
{
"op": "in",
"field": "Status",
"value": ["approved", "published"]
}
Catatan: Struktur filter yang tepat bergantung pada bagaimana tag Anda dikonfigurasi di VectorDB Settings. Pastikan nama dan tipe tag sesuai dengan skema yang Anda definisikan.
Integrasi dengan Sistem AI
Integrasi AI Agent
Ketika Vector DB diaktifkan, AI Agent dapat:
- Mencari basis pengetahuan menggunakan prompt sebagai query
- Menerapkan ruang lingkup pencarian untuk hasil tersaring
- Menyertakan hasil pencarian sebagai konteks dalam respons
- Menghubungkan pengambilan pengetahuan dengan TM AI Chain
Untuk mengaktifkan untuk agen:
- Edit TM AI Agent
- Centang "Use Vector DB" di bagian Search Knowledge
- (Opsional) pilih Search Scope
- Simpan dan uji agen
Integrasi AI Chat
Agen obrolan dengan Vector DB dapat:
- Mencari informasi yang relevan berdasarkan pesan pengguna
- Mempertahankan konteks percakapan untuk pencarian multi-turn
- Menerapkan ruang lingkup pencarian untuk pengetahuan domain-spesifik
- Menggabungkan konteks dokumen dengan hasil pencarian
Konfigurasi di TM AI Chat Agent:
- Aktifkan opsi "Use Vector DB"
- Pilih Search Scope yang sesuai
- Konfigurasikan rewrite untuk percakapan multi-turn
Perilaku Pencarian
Pencarian Semantik
- Memahami makna dan konteks, tidak hanya kata kunci
- Menemukan konten yang terkait secara konseptual
- Bekerja lintas bahasa dengan model multilingual
- Menangani sinonim dan konsep terkait secara otomatis
Pencarian Hibrid
Parameter Dense Weight mengontrol perilaku pencarian:
- 1.0: Pencarian semantik murni (berbasis makna)
- 0.5: Pencocokan semantik dan kata kunci yang seimbang
- 0.2: Mengutamakan pencarian berbasis kata kunci dengan pengaruh semantik
Peringkat Hasil
Hasil awal dinilai berdasarkan relevansi. Dengan pemeringkatan ulang diaktifkan:
- Mengambil lebih banyak kandidat (retrieve_count)
- Menilai ulang menggunakan model lanjutan
- Mengembalikan hasil teratas (limit)
- Memberikan urutan relevansi yang lebih akurat
Kontrol Akses
VectorDB Admin
- Kontrol penuh atas dokumen dan ruang lingkup pencarian
- Mengelola pengaturan VectorDB global
- Melihat semua dokumen tanpa memandang tag
- Mengonfigurasi parameter di seluruh sistem
VectorDB User
- Membuat dan mengelola dokumen sendiri
- Akses baca ke ruang lingkup pencarian
- Tidak dapat memodifikasi pengaturan global
- Dapat menggunakan pencarian dalam konteks yang diizinkan
Praktik Terbaik
Manajemen Dokumen
- Judul yang Jelas: Gunakan judul deskriptif untuk identifikasi yang mudah
- Tagging yang Konsisten: Tetapkan konvensi penamaan untuk tag
- Update Berkala: Jaga dokumen tetap terkini dengan sinkronisasi terjadwal
- Pemantauan Error: Tinjau dan selesaikan error sinkronisasi dengan segera
Optimasi Pencarian
- Tuning Dense Weight: Sesuaikan berdasarkan tipe konten (teknis=lebih rendah, konseptual=lebih tinggi)
- Definisi Scope: Buat scope spesifik untuk kasus penggunaan yang berbeda
- Strategi Reranking: Aktifkan untuk pencarian kritis, nonaktifkan untuk kecepatan
- Pengaturan Chunk: Gunakan diffusion untuk konten yang berat konteks
Pertimbangan Performa
- Ukuran Dokumen: Bagi dokumen besar menjadi bagian logis
- Batch Processing: Gunakan operasi bulk untuk impor besar
- Batas Pencarian: Seimbangkan kualitas hasil dengan waktu respons
- Filter Scope: Persempit pencarian ke set dokumen yang relevan
Troubleshooting
Masalah Umum
Dokumen terjebak dalam status "Pending"
- Periksa apakah VectorDB diaktifkan di pengaturan
- Tinjau log sistem & log error untuk error sinkronisasi
Hasil pencarian yang buruk
- Sesuaikan parameter Dense Weight
- Aktifkan reranking untuk relevansi yang lebih baik
- Tinjau akurasi tagging dokumen
Search scope tidak bekerja
- Verifikasi scope ditandai sebagai Active
- Validasi sintaks filter JSON
- Pastikan dokumen tersaring ada
- Periksa nilai tag sesuai dengan kriteria filter
Integrasi tidak menemukan pengetahuan
- Konfirmasi Vector DB diaktifkan
- Periksa agen/obrolan memiliki "Use Vector DB" diaktifkan
- Verifikasi izin ruang lingkup pencarian
- Uji pencarian langsung dengan query yang sama
Penggunaan API
Untuk akses programatis melalui server script:
# Pencarian dasar
results = mantera.ai_search_knowledge("pricing policy")
# Dengan search scope
results = mantera.ai_search_knowledge(
query="vacation policy",
search_scope="HR"
)
# Dengan konteks percakapan
results = mantera.ai_search_knowledge(
query="follow-up question",
messages=[
{"role": "user", "content": "previous question"},
{"role": "assistant", "content": "previous answer"}
]
)
Konfigurasi Lanjutan
Percakapan Multi-turn
Aktifkan penulisan ulang query di ruang lingkup pencarian untuk aplikasi percakapan:
- Edit Search Scope
- Centang "Rewrite Conversation"
- Sistem memformulasikan ulang query berdasarkan riwayat obrolan
- Meningkatkan relevansi untuk pertanyaan lanjutan
Manajemen Chunk
Untuk pencarian banyak dokumen:
- Chunk Diffusion: Menyertakan paragraf di sekitarnya untuk konteks
- Chunk Group: Mempertahankan struktur dokumen dalam hasil
- Rerank Only Chunk: Memfokuskan penilaian pada konten, bukan metadata
Filtering Khusus
Buat filter kompleks untuk seleksi dokumen yang presisi:
- Gabungkan beberapa kondisi tag
- Gunakan operator perbandingan untuk nilai numerik
- Terapkan logika boolean untuk kriteria kompleks
- Referensi kolom sistem untuk filtering dinamis