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.