Elektrik 1 Elektrik 2 Elektrik 3 Elektrik 4 Elektrik 5 Elektrik 6

Embedding’lerin Güncellenmesi, Silinmesi ve Versiyon Yönetimi: Dinamik Veri Senkronizasyonu

08.06.2025 10:47


Gelişmiş RAG sistemlerinde embedding’ler sadece bir kere üretilip bırakılmaz. Belgeler zamanla değişebilir, güncellenebilir ya da tamamen kaldırılabilir. Bu noktada, sistemin dinamik bir yapıya sahip olması ve verilerin güncel kalması büyük önem taşır.

1. Neden Dinamik Embedding Yönetimi?

  • 🗓 Mevzuatlar ve resmi belgeler düzenli olarak güncellenir.
  • 🧹 Eski embedding’ler sistemde kalsa, yanıltıcı cevaplar üretebilir.
  • 📦 Versiyon kontrolü sayesinde geçmişe dönük analizler mümkün olur.

2. Güncelleme: Var Olan Embedding'i Yeniden Üretmek

Bir belgenin içeriği değiştiyse, aynı document_id veya slug ile embedding işlemi yeniden yapılır. Eski embedding silinir, yenisi vektör veritabanına eklenir.


# Güncelleme örneği
index.delete(filter={"doc_id": "YONETMELIK-001"})
new_embedding = model.encode(updated_text)
index.upsert([
    {"id": "YONETMELIK-001", "values": new_embedding, "metadata": {"kaynak": "2024 versiyonu"}}
])

3. Silme: Artık Kullanılmayan Belgeleri Temizlemek

Sistemdeki bazı belgeler zamanla geçersiz olabilir. Bu durumda yalnızca filtreye göre silme yapılmalıdır.


# Belirli bir kategoriye ait embedding'leri sil
index.delete(filter={"kategori": "Yürürlükten Kaldırılanlar"})

4. Versiyonlama: Her Versiyonu Saklamak

Belgenin eski ve yeni versiyonlarını birlikte saklamak istiyorsan, metadata alanına versiyon bilgisi ekleyebilirsin.


index.upsert([
    {"id": "MADDE_5_v1", "values": embedding_v1, "metadata": {"versiyon": "2023"}},
    {"id": "MADDE_5_v2", "values": embedding_v2, "metadata": {"versiyon": "2025"}}
])

Sorgu anında kullanıcıdan versiyon seçmesi istenebilir veya en güncel olan filtrelenebilir:


index.query(
    query="ceza uygulaması",
    filters={"versiyon": "2025"}
)

5. Otomatik Eşzamanlama Stratejisi

Dinamik sistemler için önerilen yapı şudur:

  • Hash kontrolü: Belge içerikleri değiştiğinde SHA256 hash’i değişir → yeniden embedding gerekir.
  • Cronjob veya webhook: Yeni belge geldiğinde otomatik tetikleyici ile embedding işlemi yapılır.
  • Yedekleme: Eski embedding’ler versiyon bilgisi ile arşivlenir.

Sonuç

Embedding’lerin sadece “oluştur” ve “kullan” mantığıyla değil, bir yaşam döngüsü içinde yönetilmesi gerekir. Güncelleme, silme ve versiyonlama gibi işlemler sayesinde sistem:

  • 📌 Her zaman güncel bilgi sağlar,
  • 📌 Eski verilerin karışmasını engeller,
  • 📌 Denetlenebilir ve sürdürülebilir hale gelir.

🔗 Devam Edecek

Bir sonraki yazımızda embedding’lerin Pinecone, Weaviate veya Qdrant gibi vektör veritabanlarına nasıl daha verimli aktarıldığını ve arama optimizasyonlarının nasıl yapıldığını inceleyeceğiz.