00:00:00عندما تحتاج إلى أداة كشط لتقنية RAG، فالمشكلة ليست في الحصول على البيانات،
00:00:03بل في تنظيفها.
00:00:04فلغة جافا سكريبت تعطل الأمور، وHTML فوضوي،
00:00:07ونحن نضيع الوقت في محاولة جعلها قابلة للاستخدام في النماذج اللغوية الكبيرة.
00:00:11الحل لهذه المشكلة هو CrawlForAI.
00:00:13لقد صُمم خصيصاً للذكاء الاصطناعي، ويدعم العمليات غير المتزامنة،
00:00:15ويتعامل مع جافا سكريبت، ويخرج البيانات بتنسيق markdown أو JSON نظيف،
00:00:18كما أنه أسرع بست مرات من أدوات الكشط التقليدية في بايثون مثل Scrapy.
00:00:23فنحن نحصل على بيانات جاهزة للنماذج بسرعة لم أرَ لها مثيلاً من قبل.
00:00:26كيف يعمل هذا؟ وما الذي يميزه؟
00:00:29هذه هي الأسئلة المطروحة.
00:00:30[موسيقى]
00:00:35إذاً، ما هو CrawlForAI فعلياً؟
00:00:37في البداية، قد يبدو مجرد أداة زحف أخرى بلغة بايثون،
00:00:40لكنه لم يُصمم لمجرد الكشط، بل صُمم لأجل الذاء الاصطناعي.
00:00:43إليك الفرق.
00:00:44معظم أدوات الزحف تعطينا كود HTML خام،
00:00:46أما CrawlForAI فيعطينا markdown نظيفاً أو JSON منظماً جاهزاً للنموذج اللغوي.
00:00:52إنه يتعامل مع جافا سكريبت باستخدام Playwright،
00:00:54ويعمل بشكل غير متزامن مما يجعله قابلاً للتوسع فعلياً،
00:00:57ويحتوي على وضع الجلب المسبق الذي يتخطى المعالجة الثقيلة عندما تحتاج فقط للروابط.
00:01:01هذا الأمر مهم لأننا إذا كنا نبني روبوتات محادثة،
00:01:04أو مساعدين، أو وكلاء ذكاء اصطناعي، فمشكلتنا ليست في الزحف،
00:01:08بل في تحويل بيانات صفحات الويب الفوضوية إلى بيانات قابلة للاستخدام.
00:01:11أداة CrawlForAI تحل هذه المشكلة تماماً وبسرعة.
00:01:15إذا كنت تستمتع بهذا النوع من المحتوى، فتأكد من الاشتراك.
00:01:18لدينا فيديوهات جديدة تصدر باستمرار.
00:01:20لنبدأ بشيء بسيط. إليكم أبسط عملية زحف قمت بتشغيلها.
00:01:23لقد حصلت على معظم هذا من مستودعهم ووثائقهم،
00:01:25وقمت فقط بتعديل بضعة أسطر لتشغيله.
00:01:28استوردت AsyncWebCrawler الذي يعالج طلبات الويب غير المتزامنة لخطوط إنتاج الذكاء الاصطناعي.
00:01:34ثم قمت بطلب تشغيل على رابط أخبار تقنية، وهذا كل شيء.
00:01:38الآن انظروا إلى النتيجة.
00:01:40هذا ليس كود HTML خام ما حصلنا عليه،
00:01:43بل هو markdown نظيف وJSON نظيف.
00:01:45العناوين منظمة، والروابط محفوظة،
00:01:47وفي الخلفية، يقوم بجلب الصفحة،
00:01:50وتحليل الـ DOM، وإزالة الضجيج،
00:01:52ويصنف المحتوى لنحتفظ بالأجزاء المهمة دون كل تلك المصطلحات الزائدة.
00:01:57الآن، إذا كنا بحاجة لبناء ملخص أخبار في هذه الحالة أو نموذج أولي لـ RAG،
00:02:02فنحن لا نكتب سكربتات تنظيف،
00:02:04بل نمرر هذه البيانات مباشرة إلى نموذجك.
00:02:07كنا نتوقع كشطاً عادياً مثل أي أداة أخرى، أو على الأقل هذا ما توقعته،
00:02:11لكن ما حصلنا عليه فعلياً هو بيانات مجهزة مسبقاً لنا.
00:02:14هذه الفجوة هي توفير في الوقت.
00:02:17الآن، الأمور تصبح أكثر إثارة من هنا.
00:02:19بينما كنت أجربه،
00:02:20قد تعتقد أن معالجة كل صفحة أمر ضروري.
00:02:23لكن الواقع غير ذلك. شاهدوا هذا.
00:02:25هذه نفس أداة الزحف،
00:02:27لكننا الآن نفعل خيار الجلب المسبق (prefetch).
00:02:30سأقوم بالدخول على موقع Hacker News.
00:02:31هل ترون سرعة التشغيل؟
00:02:33كانت السرعة مذهلة حقاً.
00:02:35بدلاً من معالجة كل صفحة،
00:02:37يقوم بجلب الروابط أولاً،
00:02:38بمجرد جلب غير متزامن.
00:02:39إذا كنت تبني مجمع بيانات، فهذا ممتاز.
00:02:42نجد أولاً ما نحتاجه،
00:02:44ثم يمكننا استخراجه لاحقاً.
00:02:45أنت لا تزحف لكل شيء،
00:02:47فقط ما تحتاجه.
00:02:48هذا الفرق يظهر أثره بوضوح عند التعامل مع
00:02:50مئات أو آلاف الروابط.
00:02:52الآن، دعونا نتحدث قليلاً عن جانب الإنتاج.
00:02:55سأقوم بتشغيل زحف عميق باستخدام استراتيجية BFS deep crawl.
00:02:58هذه نسختهم من نهج “البحث أولاً في العرض”.
00:03:01بعد ذلك، أحدد حالة الاستئناف هنا،
00:03:03وأضيف وظيفة استدعاء عند تغيير الحالة.
00:03:07سأبدأ الزحف،
00:03:08ثم سأقوم بإيقاف العملية قسرياً.
00:03:10الآن، معظم الأدوات عندما توقف عمليتها،
00:03:13تبدأ من الصفر مرة أخرى.
00:03:14لكن عندما أعيد تشغيل هذا، انظروا،
00:03:16نبدأ من جديد باستخدام حالة JSON المحفوظة،
00:03:19ويستمر بالضبط من حيث توقف دون فقدان أي شيء.
00:03:22لذا عند بناء قاعدة معرفية ضخمة لـ RAG،
00:03:24فإن تعطل البرنامج ليس مجرد أمر مزعج.
00:03:26عادة ما يكون مكلفاً جداً.
00:03:29لكن هنا، يكمل العمل ببساطة.
00:03:30الجزء الذي لا تستطيع معظم أدوات الكشط فعله هو الاستخراج الدلالي.
00:03:35إذا قمت بتعريف مخطط بيانات باستخدام Pydantic،
00:03:37مثل المسمى الوظيفي، والشركة، والراتب،
00:03:39سأقوم بكشط موقع Indeed.
00:03:40ثم أقوم بإعداد استراتيجية استخراج LLM الخاصة بهم
00:03:44مع التعليمات ومزود الخدمة.
00:03:46سأقوم بتشغيله على موقع Indeed،
00:03:48موقع قوائم الوظائف الشهير،
00:03:49وانظروا إلى هذه النتيجة.
00:03:51هذا جيد جداً في الحقيقة.
00:03:52JSON منظم مع حقول واضحة،
00:03:54وإليكم ما يحدث.
00:03:56يقوم CrawlForAI بتحويل الصفحة،
00:03:58كما قلت، إلى markdown أو JSON حسب اختيارك.
00:04:01ثم يرسلها إلى النموذج.
00:04:03ويقوم النموذج بتنظيمها بناءً على مخطط البيانات الخاص بك.
00:04:06إنه لا يكشط النصوص فحسب،
00:04:07بل يستخرج ما نريده بالضبط.
00:04:09النماذج اللغوية الآن يمكنها التعامل مع هذا.
00:04:11هذا مستوى مختلف تماماً من الإمكانيات لأدوات الذكاء الاصطناعي.
00:04:15كان هذا رائعاً،
00:04:16لكن دعونا ننظر للصورة الكاملة للحظة.
00:04:18المميزات هنا هي السرعة.
00:04:20إنه سريع جداً، يصل إلى 6 مرات أسرع في الاختبارات.
00:04:22يتعامل مع جافا سكريبت تلقائياً.
00:04:24إنه غير متزامن وقابل للتوسع،
00:04:26ويستأنف العمل بعد حالات التوقف.
00:04:28لكن النقطة الأبرز هنا،
00:04:29هي دمجه للنماذج اللغوية مباشرة.
00:04:32بالإضافة إلى أنه مفتوح المصدر.
00:04:33قمت فقط بتثبيته عبر pip وأصبح جاهزاً للعمل.
00:04:35وكأي شيء آخر،
00:04:36هناك بعض المقايضات هنا.
00:04:38إنه يعمل بلغة بايثون فقط، أليس كذلك؟
00:04:39قد تستخدم بايثون وقد لا تستخدمها.
00:04:41قد يكون هذا عائقاً للبعض.
00:04:42ميزات النماذج اللغوية تتطلب مفاتيح API ما لم تستخدم نماذج محلية مثل Ollama.
00:04:46عمليات الزحف قد تظل تواجه حدود معدل الطلبات،
00:04:49وكأي مشروع مفتوح مصدر يتطور بسرعة،
00:04:51عليك تحديثه باستمرار، صح؟
00:04:53يتم إصدار التحديثات بشكل مستمر.
00:04:54لكن بالنسبة للمطورين المهتمين بالذكاء الاصطناعي،
00:04:56فهو يزيل الكثير من العقبات، أليس كذلك؟
00:04:58خاصة في خطوط إنتاج RAG.
00:05:00الآن، دعونا نقارنه بما قد تستخدمه حالياً.
00:05:03أداة Scrapy، إذا كنت تستخدم بايثون.
00:05:05هي رائعة لعمليات الزحف الضخمة في المواقع الثابتة،
00:05:07لكنها تعتمد على القواعد وتتطلب الكثير من الأكواد الروتينية.
00:05:10بصراحة، إعدادها يستغرق وقتاً طويلاً.
00:05:13وإذا أردت استخراج البيانات عبر النماذج اللغوية بتنسيق markdown،
00:05:16فسيتعين عليك بناء طبقات مخصصة.
00:05:17مع CrawlForAI، هذا مدمج وجاهز.
00:05:19هناك أيضاً Beautiful Soup.
00:05:21وهي خفيفة جداً وبسيطة،
00:05:23لكنها في الحقيقة مجرد أداة تحليل نصوص.
00:05:25لا يوجد بها محرك زحف،
00:05:26ولا معالجة لجافا سكريبت.
00:05:28سينتهي بك الأمر بمحاولة تجميع أدوات كثيرة معاً.
00:05:31ثم بالطبع هناك الأداة الكبيرة Selenium.
00:05:33هي تعالج جافا سكريبت بالتأكيد، صح؟
00:05:36لكنها أبطأ وتتطلب تدخلاً يدوياً أكبر.
00:05:38توسيع سير العمل غير المتزامن سيظل أمراً متعباً.
00:05:42أما CrawlForAI فيحتوي على Playwright داخلياً
00:05:44ويقدم واجهة برمجة تطبيقات (API) واضحة وغير متزامنة.
00:05:46إذا كنت تبني أدوات زحف تقليدية تعتمد على القواعد
00:05:48للبيانات الثابتة،
00:05:49فأدواتك الحالية ستكون كافية جداً بصراحة.
00:05:52لكن إذا كنت تبني أنظمة ذكاء اصطناعي،
00:05:54أو خطوط إنتاج RAG، أو وكلاء مستقلين،
00:05:56فإن CrawlForAI صُمم خصيصاً لهذا النوع من العالم،
00:06:00وهو حقاً أداة ذكاء اصطناعي رائعة.
00:06:02إنه لا يزحف للصفحات فحسب، بل يجهز البيانات،
00:06:04ويعد ما يحتاجه النموذج اللغوي بالضبط.
00:06:06هذا هو CrawlForAI.
00:06:08إذا كنت مهتماً بالذكاء الاصطناعي، فالأمر يستحق التجربة.
00:06:11لقد كان سريعاً جداً، وقد صدمتني سرعته في الواقع.
00:06:14وهو رائع جداً
00:06:15إذا كنا نبني خطوط إنتاج من نوع RAG،
00:06:17حيث يمكننا إرسال البيانات بشكل نظيف لنماذجنا اللغوية.
00:06:20نراكم في فيديو آخر.