0Pricing
AI Agents · Pelajaran

Pemfilteran Metadata untuk Pencarian Hibrida

Gabungkan kemiripan vektor dengan filter terstruktur (tanggal, penulis, tag) untuk mendapatkan pengambilan yang tepat dan kontekstual.

Pemfilteran Metadata untuk Pencarian Hibrida adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Mengapa Melakukan Penyaringan?

search vektor murni mengembalikan K potongan yang paling mirip — meskipun potongan tersebut berasal dari penyewa, bahasa, atau dokumen yang salah.

Penyaring metadata membatasi cakupan search pada subset yang relevan, sehingga memberi Anda precision AND recall.

Menyimpan Metadata

Lampirkan kamus metadata ke setiap potongan saat memasukkan data:

metadata = {
    'tenant_id': 'acme',
    'language': 'en',
    'source': 'help-docs',
    'updated_at': '2024-08-12',
    'tags': ['shipping', 'returns']
}
for k, v in metadata.items():
    print(f"{k}: {v}")

Filtering in Pinecone

results = index.query(
    vector=query_vec,
    top_k=5,
    filter={
        'tenant_id': 'acme',
        'language': 'en'
    }
)

Penyaring Rentang

Sebagian besar basis data vektor juga mendukung penyaring rentang:

filter = {
    'updated_at': {'$gte': '2024-01-01'},
    'score': {'$gt': 0.5}
}
print(filter)

In and Not-In

filter = {
    'tags': {'$in': ['shipping', 'returns']},
    'archived': {'$ne': True}
}
print(filter)

Penyaringan di Qdrant

Qdrant memiliki bahasa penyaringan yang kaya:

from qdrant_client.models import Filter, FieldCondition, MatchValue

filter = Filter(must=[
    FieldCondition(key='tenant_id', match=MatchValue(value='acme')),
    FieldCondition(key='language', match=MatchValue(value='en'))
])

results = client.search(
    collection_name='docs',
    query_vector=query_vec,
    query_filter=filter,
    limit=5
)

Penyaringan Awal vs Penyaringan Akhir

Dua strategi:

  • Penyaringan awal — terapkan penyaring THEN lakukan search (benar, tetapi dapat lambat tanpa metadata yang diindeks)
  • Penyaringan akhir — lakukan search lalu buang hasil yang tidak cocok (cepat, tetapi dapat mengembalikan nol hasil)

Sistem produksi melakukan penyaringan awal dengan indeks metadata yang sesuai.

Vektor Hibrida + Kata Kunci

Gabungkan search semantik dengan search kata kunci klasik BM25. Jalankan keduanya, lalu gabungkan skornya (penggabungan peringkat timbal balik adalah metode standar):

def rrf(vec_results, bm25_results, k=60):
    scores = defaultdict(float)
    for rank, doc in enumerate(vec_results):
        scores[doc.id] += 1 / (k + rank)
    for rank, doc in enumerate(bm25_results):
        scores[doc.id] += 1 / (k + rank)
    return sorted(scores.items(), key=lambda x: -x[1])

Multitenansi

Dalam SaaS, EVERY query harus disaring berdasarkan ID penyewa. Tanamkan aturan ini secara permanen dalam pembungkus pengambilan data Anda agar tidak dapat terlupakan:

def search(query, tenant_id, top_k=5):
    return index.query(
        vector=embed(query),
        top_k=top_k,
        filter={'tenant_id': tenant_id}
    )

Kontrol Akses melalui Metadata

Simpan izin pengguna/peran dalam metadata:

metadata = {
    'visibility': 'public',         # or 'internal', 'restricted'
    'department': 'engineering',
    'allowed_roles': ['engineer', 'manager']
}

# At query time:
filter = {'allowed_roles': {'$contains': current_user_role}}

Peningkatan Berdasarkan Kebaruan

Untuk mengutamakan dokumen yang lebih baru, ambil lebih banyak kandidat lalu hitung ulang skornya berdasarkan kebaruan:

candidates = index.query(vector=query_vec, top_k=50)
scored = [
    (c.score * recency_factor(c.metadata['updated_at']), c)
    for c in candidates
]
scored.sort(reverse=True)
final = scored[:5]

Perhatikan Kardinalitas Metadata

Metadata berkardinalitas tinggi (jutaan nilai unik) membuat indeks menjadi sangat besar. Lakukan agregasi awal jika memungkinkan — misalnya, simpan tahun-bulan, bukan stempel waktu lengkap, untuk penyaringan berdasarkan waktu.

Penyaring yang Selalu Aktif

Penyaring apa yang harus ALWAYS disertakan oleh setiap agen multitenansi?

Ringkasan

Penyaring metadata membatasi cakupan search Anda. Gabungkan dengan hybrid (vektor + BM25) untuk mendapatkan hasil terbaik. Multitenansi dan kontrol akses bergantung pada hal ini.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemfilteran Metadata untuk Pencarian Hibrida” gratis?

Ya — teks lengkap “Pemfilteran Metadata untuk Pencarian Hibrida” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemfilteran Metadata untuk Pencarian Hibrida”?

Gabungkan kemiripan vektor dengan filter terstruktur (tanggal, penulis, tag) untuk mendapatkan pengambilan yang tepat dan kontekstual. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pemfilteran Metadata untuk Pencarian Hibrida” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?

Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pinecone, Weaviate, Qdrant: Perbandingan
  2. Pemfilteran Metadata untuk Pencarian Hibrida
  3. Memperbarui dan Menghapus Vektor
  4. Memilih Metrik Jarak (cosine, L2, dot)
← Kembali ke AI Agents