Regex से LLMs तक: वेब डेटा निकालने का मेरा सफर
मैंने एक प्राइस कंपैरिजन टूल बनाया। मुझे दर्जनों ई-कॉमर्स साइटों से प्रोडक्ट डेटा निकालने की ज़रूरत थी। हर साइट का स्ट्रक्चर अलग था। कुछ साइटें रैंडम CSS क्लासेस का उपयोग करती थीं। कुछ कंटेंट लोड करने के लिए JavaScript का उपयोग करती थीं।
मैंने पहले पारंपरिक तरीका आज़माया। मैंने Regex और BeautifulSoup का उपयोग किया।
यह दो साइटों के लिए काम कर गया। फिर, एक साइट ने अपना लेआउट बदल दिया। मेरा कोड काम करना बंद कर गया। एक अन्य साइट डायनेमिक कंटेंट का उपयोग कर रही थी। मैंने डेटा का उपयोग करने के बजाय स्क्रैपर्स को ठीक करने में अधिक समय बिताया।
फिर मैंने AI आज़माया। मैंने एक LLM में रॉ HTML फीड किया।
परिणाम खराब थे। आउटपुट असंगत था। कभी मुझे JSON मिलता, तो कभी पैराग्राफ। मॉडल डेटा को लेकर hallucinate कर रहा था। लागत बहुत अधिक थी क्योंकि मैंने बहुत अधिक टोकन भेजे थे।
मुझे एक बीच का रास्ता मिला। अब मैं एक हाइब्रिड अप्रोच का उपयोग करता हूँ।
मेरी प्रक्रिया यहाँ दी गई है:
- HTML को प्रीप्रोसेस करें। मैं स्क्रिप्ट, स्टाइल और नेविगेशन बार को हटा देता हूँ। मैं केवल दिखाई देने वाले टेक्स्ट को रखता हूँ। इससे टोकन काउंट और लागत कम हो जाती है।
- JSON मोड या फंक्शन कॉलिंग का उपयोग करें। यह LLM को स्ट्रक्चर्ड डेटा वापस देने के लिए मजबूर करता है।
- रिट्राय लॉजिक (retry logic) का उपयोग करें। यदि JSON गलत है, तो कोड फिर से प्रयास करता है।
- परिणामों को कैश (cache) करें। मैं एक ही पेज के लिए दोबारा भुगतान करने से बचने के लिए प्रत्येक URL के सफल एक्सट्रैक्शन को सेव कर लेता हूँ।
स्टैटिक और अच्छी तरह से स्ट्रक्चर्ड साइटों के लिए Regex और BeautifulSoup अभी भी सबसे अच्छे हैं। वे तेज़ और मुफ्त हैं।
LLMs अव्यवस्थित और अप्रत्याशित साइटों के लिए बेहतर हैं। लेकिन लागत कम रखने के लिए आपको पहले डेटा को साफ करना होगा।
मेरे द्वारा सीखे गए सबक:
- अपनी लागत और सफलता दर की निगरानी करें।
- अपनी लेटेंसी (latency) पर ध्यान दें। LLM कॉल्स में सेकंड लगते हैं, मिलीसेकंड नहीं।
- आउटपुट को वैलिडेट (validate) करें। जाँचें कि क्या कीमत एक वास्तविक कीमत जैसी दिखती है।
- एक हाइब्रिड सिस्टम का उपयोग करें। आसान साइटों के लिए पार्सर (parser) और अव्यवस्थित साइटों के लिए LLM का उपयोग करें।
यह सेटअप मेरे काम के घंटों बचाता है। मैं एक घंटे से भी कम समय में एक नया स्टोर जोड़ सकता हूँ।
आप अव्यवस्थित वेब डेटा को कैसे संभालते हैं? क्या आप पार्सर पसंद करते हैं या LLMs?
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi