𝗔𝘀𝘆𝗻𝗰 𝗦𝗰𝗿𝗮𝗽𝗶𝗻𝗴 𝗜𝘀 𝗕𝗲𝘁𝘁𝗲𝗿 𝗳𝗼𝗿 𝗥𝗔𝗚 𝗜𝗻𝗴𝗲𝘀𝘁𝗶𝗼𝗻

سیستم‌های RAG اغلب به دلیل داده‌های قدیمی (stale) با شکست مواجه می‌شوند. صفحه تغییر می‌کند اما ایندکس شما ثابت می‌ماند. در نتیجه، هوش مصنوعی شما با اطمینان بالا، پاسخ‌های اشتباه ارائه می‌دهد.

بسیاری از افراد سعی می‌کنند این مشکل را با اسکرپرهای همگام (synchronous) ساده حل کنند. شما یک صفحه را فراخوانی می‌کنید، داده‌ها را استخراج می‌کنید و vector store خود را به‌روزرسانی می‌کنید. این رویکرد در محیط عملیاتی (production) مشکلاتی ایجاد می‌کند.

مشکلات اصلی اسکرپینگ همگام:

اسکرپینگ ناهمگام (Async) از جریان «ارسال، بررسی و بازیابی» استفاده می‌کند. شما یک وظیفه را ارسال می‌کنید، یک شناسه کار (job ID) دریافت می‌کنید و بعداً نتیجه را بررسی می‌کنید. این کار باعث سریع ماندن اپلیکیشن شما می‌شود.

چگونه یک خط لوله ورود داده (ingestion pipeline) قابل اعتماد بسازیم:

اسکرپینگ ناهمگام برای به‌روزرسانی‌های پس‌زمینه و بازنشانی‌های زمان‌بندی‌شده بهترین عملکرد را دارد. این روش برای نیازهای آنی (real-time) که در آن کاربر منتظر یک صفحه تازه است، مناسب نیست.

اگر کاربر بلافاصله به داده نیاز دارد، محتوای کش‌شده (cached) را به او نشان دهید و ایندکس را در پس‌زمینه به‌روزرسانی کنید.

Source: https://dev.to/anakin_writers/async-scraping-jobs-are-usually-a-better-fit-for-rag-ingestion-than-blocking-requests-12k1

Optional learning community: https://t.me/GyaanSetuAi