روبینوس ایآی یک شرکت فعال در حوزهٔ هوش مصنوعی است که برای آموزش و ارزیابی مدلهایش به حجم بالایی از دادهٔ متنی و ساختاریافته از منابع مختلف وب نیاز داشت. دادهای که در دسترس عمومی بود، اما جمعآوری، پاکسازی و آمادهسازی آن بهصورت دستی عملاً ممکن نبود.
چالش اصلی فقط دانلود صفحهها نبود؛ منابع از نظر ساختار، زبان، سرعت پاسخ و قوانین دسترسی با هم تفاوت داشتند. بخشی از سایتها محدودیت نرخ داشتند، بخشی ساختار صفحه را مرتب تغییر میدادند و بخشی دیگر دادههای تکراری تولید میکردند. خروجی باید قابل ردیابی و قابل اتکا میبود تا تیم داده بتواند روی آن حساب کند.
راهکار، مجموعهای از رباتهای کراولر ماژولار بود که برای هر منبع، قواعد استخراج اختصاصی داشتند. کارها در صف پردازش قرار میگرفتند تا اجرای همزمان کنترل شود، خطاها ثبت و در صورت نیاز دوباره تلاش شوند. دادههای خام پیش از ذخیره، نرمالسازی، اعتبارسنجی و از نظر تکراریبودن بررسی میشدند.
دادههای نهایی در PostgreSQL و با فرادادهای مانند منبع، زمان جمعآوری، نسخهٔ استخراج و وضعیت پردازش ذخیره میشدند. همین فراداده باعث میشد تیم مشتری بتواند کیفیت داده را بسنجد، منبع هر رکورد را پیدا کند و در صورت تغییر ساختار یک سایت، فقط همان منبع را اصلاح کند.
در پنل مدیریت، پروژههای جمعآوری داده، وضعیت اجرا، حجم دادههای استخراجشده و خطاهای هر منبع قابل مشاهده بود. کاربران میتوانستند دادهها را فیلتر و جستجو کنند و خروجی موردنیازشان را در قالب فایل دانلود کنند؛ بدون اینکه درگیر جزئیات فنی اجرای کراولرها شوند.
پایداری سامانه از همان ابتدا بخشی از طراحی بود: محدودیت نرخ درخواست، مدیریت نشست و هدرها، تلاش مجدد هوشمند، ثبت کامل رویدادها و امکان توقف یا ادامهٔ یک پروژه. این موارد باعث میشد اجرای طولانیمدت بدون دخالت دستی و بدون ریسک برای منابع مقصد انجام شود.
از نظر فنی، بکاند با Django و PostgreSQL توسعه داده شد، رباتهای استخراج با Python نوشته شدند و رابط پنل با React پیادهسازی شد. این ترکیب اجازه میداد منطق استخراج مستقل از رابط کاربری تکامل پیدا کند و افزودن منبع جدید، بدون تغییر در پنل انجام شود.
نتیجه، یک خط تولید دادهٔ قابل اتکاست: تیم مشتری بهجای صرف زمان برای جمعآوری دستی، روی کیفیت و کاربرد داده تمرکز میکند و هر منبع جدید با کمترین توسعه به سامانه اضافه میشود. این پروژه نمونهٔ خوبی است از اینکه ابزار داخلی، وقتی درست طراحی شود، میتواند به یک دارایی عملیاتی تبدیل شود.
ژرف تکنو