𝗔𝘀𝘆𝗻𝗰 𝗦𝗰𝗿𝗮𝗽𝗶𝗻𝗴, 𝗥𝗔𝗚 𝗩𝗲𝗿𝗶 𝗔𝗹ı𝗺ı 𝗜𝗰̧𝗶𝗻 𝗗𝗮𝗵𝗮 İ𝘆𝗶𝗱𝗶𝗿
RAG sistemleri genellikle güncelliğini yitirmiş veriler nedeniyle başarısız olur. Sayfa değişir ancak indeksiniz aynı kalır. Bu durumda yapay zekanız, yüksek güven oranıyla yanlış cevaplar verir.
Birçok kişi bu sorunu basit senkron scraper'lar ile çözmeye çalışır. Bir sayfayı çekersiniz, veriyi ayıklarsınız ve vektör deponuzu (vector store) güncellersiniz. Bu yaklaşım üretim ortamında (production) sorunlar yaratır.
Senkron scraping ile ilgili temel sorunlar:
- JavaScript veya çerez banner'ları nedeniyle sayfa yüklemeleri uzun sürer.
- API'niz scraper'ın bitmesini bekler, bu da kullanıcılarınızı yavaşlatır.
- Görevleri paralel çalıştırırken bellek (memory) veya açık soket (socket) sorunu yaşarsınız.
- Zaman aşımı (timeout) veya hız sınırları (rate limit) gibi hataları yönetmek zordur.
Asenkron scraping; bir görev gönderme (submit), sorgulama (poll) ve geri alma (retrieve) akışını kullanır. Bir görev gönderirsiniz, bir iş kimliği (job ID) alırsınız ve sonucu daha sonra kontrol edersiniz. Bu, uygulamanızın hızlı kalmasını sağlar.
Güvenilir bir veri alım hattı (ingestion pipeline) nasıl oluşturulur:
- Scraping işlemini istek yönetiminden (request handling) ayırın. Uygulamanız bir tarayıcının yüklenmesini beklememelidir.
- İş durumlarını bir veritabanında saklayın. URL'yi, durumu ve hataları takip edin.
- İçerik özetleri (content hashes) kullanın. Eğer sayfa içeriği değişmediyse, onu tekrar gömmeyin (re-embed). Bu, zaman ve maliyet tasarrufu sağlar.
- Dead-letter kuyrukları kullanın. Bir iş üç kez başarısız olursa, tekrar denemeyi bırakın. Onarabilmeniz için işi görünür bir listeye taşıyın.
- Verilerinizi doğrulayın. Ayıklanan verileri vektör deponuza ulaşmadan önce kontrol etmek için bir şema (schema) kullanın. Boş bir dize (empty string), başarısız bir işten daha kötüdür.
Asenkron scraping, arka plan güncellemeleri ve planlanmış yenilemeler için en iyi sonucu verir. Bir kullanıcının yeni bir sayfa beklediği gerçek zamanlı ihtiyaçlar için uygun değildir.
Eğer bir kullanıcının veriye hemen ihtiyacı varsa, ona önbelleğe alınmış (cached) içeriği gösterin ve indeksi arka planda güncelleyin.
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi