RAG के लिए सबसे तेज़ Python स्क्रैपर? (Crawl4AI)

BBetter Stack
Computing/SoftwareSmall Business/StartupsJob SearchInternet Technology

Transcript

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आपसे दूसरे वीडियो में मिलेंगे।

Key Takeaway

CrawlForAI आधुनिक AI डेवलपर्स के लिए एक शक्तिशाली, तेज़ और ओपन-सोर्स टूल है जो वेब डेटा को सीधे LLM-अनुकूल प्रारूप में बदलकर RAG पाइपलाइन्स को सरल बनाता है।

Highlights

Crawl4AI एक विशेष रूप से AI और RAG (Retrieval-Augmented Generation) के लिए डिज़ाइन किया गया पायथन स्क्रैपर है।

यह पारंपरिक स्क्रैपर्स जैसे Scrapy की तुलना में 6 गुना तक तेज़ है और Playwright का उपयोग करके जावास्क्रिप्ट रेंडरिंग को कुशलतापूर्वक संभालता है।

यह टूल सीधे मॉडल-रेडी क्लीन Markdown और स्ट्रक्चर्ड JSON डेटा प्रदान करता है, जिससे डेटा क्लीनिंग का समय बचता है।

इसमें एत़हाद 'सिमेंटिक एक्सट्रैक्शन' की सुविधा है, जो Pydantic स्कीमा के आधार पर केवल आवश्यक जानकारी ही निकालता है।

यह ओपन-सोर्स है और इसमें डीप क्रॉलिंग के लिए 'रिज़्यूम स्टेट' जैसी उन्नत सुविधाएँ उपलब्ध हैं जो क्रैश के बाद काम को वहीं से शुरू करने देती हैं।

Timeline

Crawl4AI का परिचय और आवश्यकता

वीडियो की शुरुआत RAG सिस्टम के लिए डेटा स्क्रैपिंग में आने वाली मुख्य समस्याओं से होती है, जहाँ डेटा पाना नहीं बल्कि उसे साफ करना असली चुनौती है। वक्ता बताते हैं कि जावास्क्रिप्ट और अव्यवस्थित HTML अक्सर LLM के लिए उपयोगी डेटा तैयार करने में बाधा डालते हैं। इसके समाधान के रूप में Crawl4AI को पेश किया गया है, जो विशेष रूप से AI पाइपलाइन्स के लिए बनाया गया है। यह टूल पारंपरिक पायथन स्क्रैपर्स की तुलना में छह गुना अधिक तेज़ी से काम करता है। यह अनुभाग स्पष्ट करता है कि Crawl4AI क्यों अलग है और यह डेवलपर्स के समय की बचत कैसे करता है।

Crawl4AI की मुख्य विशेषताएँ और बुनियादी उदाहरण

यहाँ Crawl4AI की कार्यक्षमता का विस्तार से वर्णन किया गया है, जिसमें Playwright के माध्यम से जावास्क्रिप्ट हैंडलिंग और async सपोर्ट शामिल है। वक्ता एक बुनियादी कोड उदाहरण दिखाते हैं जहाँ AsyncWebCrawler का उपयोग करके टेक न्यूज़ URL से डेटा निकाला जाता है। आउटपुट के रूप में रॉ HTML के बजाय व्यवस्थित Markdown और JSON प्राप्त होता है जो सीधे मॉडल्स में भेजा जा सकता है। यह सेक्शन बताता है कि कैसे यह टूल शोर हटाता है और केवल ज़रूरी कंटेंट को रैंक करता है। अंत में, यह बताया गया है कि यह टूल क्लीनिंग स्क्रिप्ट लिखने की ज़रूरत को पूरी तरह खत्म कर देता है।

फास्ट फेचिंग और डीप क्रॉल रणनीतियाँ

इस अनुभाग में 'प्रीफ़ेच मोड' के बारे में बताया गया है, जो हर पेज को रेंडर किए बिना तेज़ी से लिंक इकट्ठा करने में मदद करता है। वक्ता हैकर न्यूज़ पर इसका प्रदर्शन करते हैं और दिखाते हैं कि यह एग्रीगेटर बनाने के लिए कितना उपयोगी है। इसके बाद BFS (Breadth-First Search) डीप क्रॉल रणनीति का प्रदर्शन किया जाता है, जो बड़े डेटाबेस बनाने के काम आती है। एक महत्वपूर्ण फीचर 'रिज़्यूम स्टेट' है, जो प्रोसेस क्रैश होने पर भी पिछले सेव किए गए पॉइंट से क्रॉलिंग शुरू करने की अनुमति देता है। यह विशेषता बड़े पैमाने पर उत्पादन (production) के लिए अत्यंत विश्वसनीय और किफायती साबित होती है।

Pydantic के साथ सिमेंटिक एक्सट्रैक्शन

वक्ता अब Crawl4AI की सबसे उन्नत क्षमता 'सिमेंटिक एक्सट्रैक्शन' पर चर्चा करते हैं। Pydantic का उपयोग करके एक विशिष्ट स्कीमा डिफाइन किया जाता है, जैसे कि जॉब टाइटल, कंपनी और सैलरी की जानकारी। Indeed जैसी साइट पर इसे चलाकर दिखाया गया है कि कैसे यह टूल केवल वही डेटा निकालता है जिसकी आवश्यकता है। यहाँ LLM एक्सट्रैक्शन स्ट्रेटेजी का उपयोग किया जाता है जो टेक्स्ट को आपके द्वारा परिभाषित स्ट्रक्चर में बदल देती है। यह अनुभाग यह सिद्ध करता है कि यह सिर्फ एक स्क्रैपर नहीं बल्कि एक डेटा इंटेलिजेंस टूल है।

फायदे, सीमाएं और अन्य टूल्स से तुलना

वीडियो के अंतिम भाग में Crawl4AI के लाभों जैसे इसकी गति, ओपन-सोर्स प्रकृति और स्केलेबिलिटी का सारांश दिया गया है। वक्ता इसकी सीमाओं पर भी चर्चा करते हैं, जैसे कि यह केवल पायथन के लिए उपलब्ध है और LLM फीचर्स के लिए API कीज़ की आवश्यकता होती है। इसकी तुलना Scrapy, Beautiful Soup और Selenium जैसे स्थापित टूल्स से की गई है, जहाँ Crawl4AI अपनी AI-केंद्रित सुविधाओं के कारण बेहतर ठहरता है। निष्कर्ष में यह बताया गया है कि RAG पाइपलाइन्स और ऑटोनॉमस एजेंट्स बनाने वालों के लिए यह एक अनिवार्य टूल है। वक्ता दर्शकों को इसे आज़माने के लिए प्रोत्साहित करते हैं और वीडियो समाप्त करते हैं।

Community Posts

View all posts