Regex سے LLMs تک: ویب ڈیٹا نکالنے کا میرا سفر
میں نے قیمتوں کے موازنے کا ایک ٹول بنایا۔ مجھے درجنوں ای کامرس سائٹس سے پروڈکٹ ڈیٹا نکالنے کی ضرورت تھی۔ ہر سائٹ کا ڈھانچہ مختلف تھا۔ کچھ سائٹس رینڈم CSS classes استعمال کرتی تھیں، جبکہ کچھ مواد لوڈ کرنے کے لیے JavaScript کا استعمال کرتی تھیں۔
میں نے پہلے روایتی طریقہ آزمایا۔ میں نے Regex اور BeautifulSoup کا استعمال کیا۔
یہ دو سائٹس کے لیے تو کام کر گیا، لیکن پھر ایک سائٹ نے اپنا لے آؤٹ بدل دیا۔ میرا کوڈ کام کرنا چھوڑ گیا۔ ایک اور سائٹ ڈائنامک مواد (dynamic content) استعمال کر رہی تھی۔ میں ڈیٹا استعمال کرنے کے بجائے اسکریپرز (scrapers) کو ٹھیک کرنے میں زیادہ وقت گزارنے لگا۔
پھر میں نے AI آزمایا۔ میں نے خام HTML کو LLM میں ڈال دیا۔
نتائج خراب تھے۔ آؤٹ پٹ غیر مستقل تھا۔ کبھی مجھے JSON ملتا، تو کبھی پیراگراف۔ ماڈل نے غلط ڈیٹا (hallucinated data) فراہم کیا۔ قیمت بھی بہت زیادہ تھی کیونکہ میں بہت زیادہ ٹوکنز (tokens) بھیج رہا تھا۔
مجھے ایک درمیانی راستہ مل گیا۔ اب میں ایک ہائبرڈ طریقہ (hybrid approach) استعمال کرتا ہوں۔
میرا طریقہ کار یہ ہے:
- HTML کو پری پروسیس (preprocess) کریں۔ میں اسکرپٹس، اسٹائلز اور نیویگیشن بارز کو ہٹا دیتا ہوں۔ میں صرف نظر آنے والا متن (visible text) رکھتا ہوں۔ اس سے ٹوکنز کی تعداد اور اخراجات کم ہو جاتے ہیں۔
- JSON mode یا function calling کا استعمال کریں۔ یہ LLM کو ڈھانچہ دار ڈیٹا (structured data) واپس کرنے پر مجبور کرتا ہے۔
- ری ٹرائی لاجک (retry logic) کا استعمال کریں۔ اگر JSON غلط ہو تو کوڈ دوبارہ کوشش کرتا ہے۔
- نتائج کو کیش (cache) کریں۔ میں ایک ہی پیج کے لیے بار بار ادائیگی سے بچنے کے لیے ہر URL کے کامیاب ڈیٹا نکالنے کے عمل کو محفوظ کر لیتا ہوں۔
ساکن (static) اور بہتر ڈھانچے والی سائٹس کے لیے Regex اور BeautifulSoup اب بھی بہترین ہیں۔ یہ تیز اور مفت ہیں۔
الجھھی ہوئی اور غیر متوقع سائٹس کے لیے LLMs بہتر ہیں۔ لیکن اخراجات کم رکھنے کے لیے آپ کو پہلے ڈیٹا کو صاف کرنا ہوگا۔
میرے سیکھے ہوئے اسباق:
- اپنے اخراجات اور کامیابی کی شرح (success rates) پر نظر رکھیں۔
- لیٹنسی (latency) کا خیال رکھیں۔ LLM کالز میں سیکنڈز لگتے ہیں، ملی سیکنڈز نہیں۔
- آؤٹ پٹ کی تصدیق کریں۔ چیک کریں کہ کیا قیمت ایک حقیقی قیمت کی طرح لگ رہی ہے۔
- ہائبرڈ سسٹم استعمال کریں۔ آسان سائٹس کے لیے پارسر (parser) اور الجھی ہوئی سائٹس کے لیے LLM کا استعمال کریں۔
یہ سیٹ اپ میرے کام کے کئی گھنٹے بچاتا ہے۔ میں ایک گھنٹے سے بھی کم وقت میں ایک نیا اسٹور شامل کر سکتا ہوں۔
آپ الجھے ہوئے ویب ڈیٹا کو کیسے ہینڈل کرتے ہیں؟ کیا آپ پارسرز کو ترجیح دیتے ہیں یا LLMs کو؟
Optional learning community: https://t.me/GyaanSetuAi