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

Dinamik Embedding Sistemi: Belgeleri Otomatik İzleme ve Güncel Kalma Yöntemleri

08.06.2025 10:49


Bir RAG sisteminde yalnızca ilk yüklenen verilerle sınırlı kalmak, sistemin zamanla etkisini yitirmesine neden olur. Bu nedenle veri setlerinin dinamik biçimde izlenmesi ve değişikliklerin gerçek zamanlı olarak embedding sürecine dahil edilmesi kritik bir ihtiyaçtır.

1. Neden Dinamik İzleme Gerekli?

  • 📥 Yeni mevzuatlar veya belgeler eklenebilir
  • ✏️ Var olan belgelerde güncellemeler olabilir
  • 🗑️ Eski veya geçersiz belgelerin silinmesi gerekebilir

2. Otomatik İzleme Yöntemleri

İki temel yöntem vardır:

  • Filesystem Watcher: Yerel klasörlerdeki değişiklikleri algılar (watchdog gibi kütüphanelerle)
  • Zamanlayıcı Görevler: Belirli periyotlarda tarama yapar (örneğin cron tabanlı sistemler veya Celery Beat)

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class BelgeHandler(FileSystemEventHandler):
    def on_created(self, event):
        if event.src_path.endswith(".pdf"):
            process_and_embed(event.src_path)

observer = Observer()
observer.schedule(BelgeHandler(), path="/app/belgeler", recursive=False)
observer.start()

3. Embedding Süreci Otomasyonu

Yeni gelen belge tespit edildiğinde:

  1. 🧹 Ön işleme ve temizleme yapılır
  2. 🔍 Chunking uygulanır
  3. 📌 Metadata eklenir
  4. 📤 Embedding ve vektör veritabanına aktarım gerçekleşir

4. Versiyon ve Güncelleme Kontrolü

Mevcut bir belgenin güncellendiğini anlayabilmek için:

  • MD5 hash karşılaştırması yapılabilir
  • Dosya tarihi ya da revizyon ID’si kullanılabilir

import hashlib
def hash_file(path):
    with open(path, "rb") as f:
        return hashlib.md5(f.read()).hexdigest()

5. Vektör Güncelleme / Silme

Weaviate, Qdrant veya Pinecone gibi sistemler; ID bazlı update ve delete işlemlerini destekler.


index.upsert(vectors=[...], ids=["madde-12", "madde-13"])
index.delete(ids=["madde-8"])

6. Bildirim / Loglama

Tüm bu süreçlerde bir log dosyası veya Slack/email entegrasyonu ile bildirim gönderilmesi önerilir. Böylece embedding sürecinin başarısı izlenebilir olur.

Sonuç

Dinamik veri izleme ve güncel embedding yapısı sayesinde RAG sistemleri canlı, güvenilir ve sürdürülebilir hale gelir. Sisteminiz her zaman en güncel bilgiyle donatılmış olur ve LLM cevaplarının kalitesi yükselir.

🔗 Devamı Gelecek

Bir sonraki yazımızda, LLM tabanlı sistemlerde log yönetimi, performans izleme ve hata geri bildirimi gibi operasyonel izleme araçlarını nasıl kuracağımızı detaylandıracağız.