00:00:00जब आपको RAG के लिए स्क्रैपर की ज़रूरत होती है, तो समस्या डेटा पाना नहीं है,
00:00:03बल्कि उसे साफ करना है।
00:00:04जावास्क्रिप्ट चीज़ें बिगाड़ देती है, HTML अव्यवस्थित होता है,
00:00:07और हम LLM के लिए इसे उपयोगी बनाने में समय बर्बाद करते हैं।
00:00:11इसका समाधान है CrawlForAI।
00:00:13यह AI के लिए बना है, इसमें async सुविधा है,
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लेकिन यह सिर्फ स्क्रैपिंग के लिए नहीं, बल्कि AI के लिए बनाया गया है।
00:00:43यहाँ अंतर है।
00:00:44ज्यादातर क्रॉलर्स हमें रॉ HTML देते हैं,
00:00:46CrawlForAI हमें LLM के लिए तैयार साफ markdown या स्ट्रक्चर्ड JSON देता है।
00:00:52यह Playwright का उपयोग करके जावास्क्रिप्ट को संभालता है,
00:00:54यह async चलता है ताकि इसे बड़े पैमाने पर इस्तेमाल किया जा सके,
00:00:57और इसमें प्रीफ़ेच मोड है जो भारी रेंडरिंग को छोड़ देता है जब आपको केवल लिंक की ज़रूरत हो।
00:01:01अब यह इसलिए मायने रखता है क्योंकि अगर हम चैटबॉट्स,
00:01:04असिस्टेंट या एजेंट बना रहे हैं, तो हमारी समस्या क्रॉलिंग नहीं है,
00:01:08बल्कि उस उलझे हुए वेब पेज डेटा को उपयोगी डेटा में बदलना है।
00:01:11CrawlForAI इस पूरी समस्या को बहुत तेज़ी से खत्म कर देता है।
00:01:15अगर आपको इस तरह का कंटेंट पसंद है, तो सब्सक्राइब ज़रूर करें।
00:01:18हमारे वीडियो हर समय आते रहते हैं।
00:01:20चलिए सादगी से शुरू करते हैं। यहाँ सबसे बुनियादी क्रॉल है जो मैंने तैयार किया है।
00:01:23इसमें से बहुत कुछ मैंने उनके रेपो और डॉक्स से लिया है,
00:01:25और इसे चलाने के लिए बस कुछ लाइनों में बदलाव किया है।
00:01:28मैंने AsyncWebCrawler इम्पोर्ट किया है जो AI पाइपलाइन्स के लिए एसिंक्रोनस वेब रिक्वेस्ट संभालता है।
00:01:34फिर मैं एक टेक न्यूज़ URL पर रन कॉल करता हूँ, बस इतना ही।
00:01:38अब इस आउटपुट को देखें।
00:01:40यह हमें रॉ HTML नहीं मिल रहा है,
00:01:43यह बिल्कुल साफ markdown और JSON है।
00:01:45हेडिंग्स व्यवस्थित हैं, लिंक सुरक्षित हैं,
00:01:47और इसके पीछे, यह पेज को फेच करता है,
00:01:50DOM को पार्स करता है, शोर हटाता है,
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लेकिन अब हम प्रीफ़ेच को true सेट करते हैं।
00:02:30मैं हैकर न्यूज़ पर ट्राई करने वाला हूँ।
00:02:31देखें यह कितनी तेज़ी से चलता है?
00:02:33यह वास्तव में अविश्वसनीय रूप से तेज़ था।
00:02:35हर पेज को रेंडर करने के बजाय,
00:02:37यह पहले लिंक पकड़ता है,
00:02:38बस async फेचिंग के ज़रिए।
00:02:39अगर आप एग्रीगेटर बना रहे हैं, तो यह बहुत अच्छा है।
00:02:42हम पहले वह खोजते हैं जिसकी हमें ज़रूरत है,
00:02:44फिर उसे बाद में एक्सट्रैक्ट कर सकते हैं।
00:02:45आप सब कुछ क्रॉल नहीं करते,
00:02:47सिर्फ वही जो हमें चाहिए।
00:02:48जब आप सैकड़ों या हज़ारों URLs के साथ काम करते हैं,
00:02:50तो यह अंतर बहुत बड़ा हो जाता है।
00:02:52अब, चलिए थोड़ा प्रोडक्शन साइड की बात करते हैं।
00:02:55मैं BFS डीप क्रॉल रणनीति का उपयोग करके एक डीप क्रॉल चलाऊंगा।
00:02:58यह उनका BFS एप्रोच का वर्शन है।
00:03:01मैं फिर यहाँ resume state को डिफाइन करता हूँ,
00:03:03और एक on state change कॉलबैक जोड़ता हूँ।
00:03:07मैं क्रॉल शुरू करने जा रहा हूँ,
00:03:08और फिर मैं प्रोसेस को बंद (kill) कर दूँगा।
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:52साफ फील्ड्स के साथ स्ट्रक्चर्ड JSON,
00:03:54और देखिए यहाँ क्या हो रहा है।
00:03:56CrawlForAI पेज को कन्वर्ट करता है,
00:03:58जैसा कि मैंने कहा, आप markdown या JSON चुन सकते हैं।
00:04:01यह फिर इसे एक मॉडल को भेजेगा।
00:04:03मॉडल इसे आपके स्कीमा के आधार पर स्ट्रक्चर करता है।
00:04:06यह सिर्फ टेक्स्ट स्क्रैप नहीं कर रहा है,
00:04:07बल्कि वही निकाल रहा है जो हमें चाहिए।
00:04:09LLM अब इसे संभाल सकता है।
00:04:11LLM स्टाइल टूल्स के लिए यह पूरी तरह से अलग स्तर की क्षमता है।
00:04:15अब, यह तो शानदार था,
00:04:16लेकिन चलिए एक बार बड़े नज़रिए से देखते हैं।
00:04:18इसके फायदे: यह तेज़ है।
00:04:20यह वास्तव में तेज़ है, बेंचमार्क में छह गुना तक।
00:04:22यह जावास्क्रिप्ट को ऑटोमैटिकली संभालता है।
00:04:24यह async और स्केलेबल है,
00:04:26और क्रैश होने के बाद फिर से शुरू हो सकता है।
00:04:28लेकिन सबसे खास बात यहाँ यह है कि,
00:04:29यह सीधे LLMs को जोड़ता है।
00:04:32साथ ही, यह ओपन सोर्स है।
00:04:33मैंने बस इसे pip install किया और काम शुरू हो गया।
00:04:35अब, किसी भी चीज़ की तरह,
00:04:36यहाँ भी कुछ समझौते (trade-offs) हैं।
00:04:38यह सिर्फ पायथन के लिए है, ठीक है?
00:04:39आप शायद पायथन इस्तेमाल करें या न करें।
00:04:41यह एक कमी हो सकती है।
00:04:42LLM फीचर्स के लिए API कीज़ चाहिए, जब तक कि आप Ollama जैसे लोकल मॉडल न चलाएं।
00:04:46क्रॉलिंग अभी भी रेट लिमिट्स से टकरा सकती है,
00:04:49और किसी भी तेज़ी से बढ़ते ओपन सोर्स प्रोजेक्ट की तरह,
00:04:51आपको इसे अपडेट करना होगा, समझे?
00:04:53अपडेट्स लगातार आ रहे हैं।
00:04:54लेकिन AI-फोकस्ड डेवलपर्स के लिए,
00:04:56यह बहुत सारी मुश्किलों को खत्म कर देता है,
00:04:58खासकर इन RAG पाइपलाइन्स में।
00:05:00अब, चलिए इसकी तुलना उससे करते हैं जो आप शायद पहले से इस्तेमाल कर रहे हैं।
00:05:03Scrapy, अगर आप पायथन से हैं, तो यह कमाल है।
00:05:05यह बड़े पैमाने पर स्टेटिक क्रॉल्स के लिए बेहतरीन है,
00:05:07लेकिन यह नियमों पर आधारित है और इसमें बहुत सारा बॉयलरप्लेट कोड है।
00:05:10सच कहूँ तो, इसे सेट करने में बहुत समय लगता है।
00:05:13अगर आप markdown आउटपुट पर LLM एक्सट्रैक्शन चाहते हैं,
00:05:16तो आपको कस्टम लेयर्स बनानी होंगी।
00:05:17CrawlForAI के साथ, यह पहले से ही मौजूद है।
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:38async वर्कफ़्लो को बड़े पैमाने पर चलाना अभी भी मुश्किल होगा।
00:05:42CrawlForAI आंतरिक रूप से Playwright का उपयोग करता है
00:05:44और एक स्पष्ट async API प्रदान करता है।
00:05:46अगर आप स्टेटिक डेटा के लिए पारंपरिक
00:05:48नियम-आधारित क्रॉलर बना रहे हैं,
00:05:49तो आपके मौजूदा टूल्स ठीक रहेंगे।
00:05:52लेकिन अगर आप AI सिस्टम,
00:05:54RAG पाइपलाइन्स या ऑटोनॉमस एजेंट बना रहे हैं,
00:05:56तो CrawlForAI खास तौर पर उसी दुनिया के लिए बनाया गया है,
00:06:00और यह वाकई में एक बहुत ही शानदार AI टूल है।
00:06:02यह सिर्फ पेज क्रॉल नहीं करता, बल्कि डेटा को तैयार करता है,
00:06:04यह वही तैयार करता है जिसकी LLM को ज़रूरत है।
00:06:06तो यह है CrawlForAI।
00:06:08अगर आप AI में रुचि रखते हैं, तो इसे आज़माना बेहतर होगा।
00:06:11यह बहुत तेज़ था, मैं वास्तव में हैरान था।
00:06:14और यह वाकई बहुत कूल है
00:06:15अगर हम ये RAG-स्टाइल पाइपलाइन्स बना रहे हैं,
00:06:17तो हम उस डेटा को सफाई से अपने LLMs में भेज सकते हैं।
00:06:20आपसे दूसरे वीडियो में मिलेंगे।