Regex నుండి LLMs వరకు: వెబ్ డేటాను సేకరించే నా ప్రయాణం

నేను ఒక ధరల పోలిక సాధనాన్ని (price comparison tool) రూపొందించాను. డజన్ల కొద్దీ ఈ-కామర్స్ సైట్ల నుండి ఉత్పత్తి డేటాను సేకరించాల్సి వచ్చింది. ప్రతి సైట్‌కు వేర్వేరు నిర్మాణాలు ఉన్నాయి. కొన్ని యాదృచ్ఛిక CSS క్లాస్‌లను ఉపయోగించాయి. కొన్ని కంటెంట్‌ను లోడ్ చేయడానికి JavaScript ఉపయోగించాయి.

మొదట నేను సాంప్రదాయ పద్ధతిని ప్రయత్నించాను. నేను Regex మరియు BeautifulSoup ఉపయోగించాను.

ఇది రెండు సైట్‌లకు పనిచేసింది. ఆ తర్వాత, ఒక సైట్ తన లేఅవుట్‌ను మార్చుకుంది. నా కోడ్ పనిచేయడం ఆగిపోయింది. మరొక సైట్ డైనమిక్ కంటెంట్‌ను ఉపయోగించింది. డేటాను ఉపయోగించడం కంటే స్క్రాపర్లను (scrapers) సరిచేయడానికే నేను ఎక్కువ సమయం వెచ్చించాను.

ఆ తర్వాత నేను AIని ప్రయత్నించాను. నేను ముడి HTMLని ఒక LLMలోకి పంపించాను.

ఫలితాలు బాగోలేవు. అవుట్‌పుట్ స్థిరంగా లేదు. కొన్నిసార్లు నాకు JSON వచ్చేది, కొన్నిసార్లు పేరాగ్రాఫ్‌లు వచ్చేవి. మోడల్ తప్పుడు డేటాను సృష్టించింది (hallucinated data). నేను చాలా ఎక్కువ టోకెన్లను పంపడం వల్ల ఖర్చు కూడా చాలా ఎక్కువగా ఉంది.

నేను ఒక మధ్యేమార్గం కనుగొన్నాను. ఇప్పుడు నేను హైబ్రిడ్ విధానాన్ని ఉపయోగిస్తున్నాను.

నా ప్రక్రియ ఇక్కడ ఉంది:

  • HTMLని ప్రీప్రాసెస్ చేయడం. నేను స్క్రిప్ట్‌లు, స్టైల్స్ మరియు నావిగేషన్ బార్‌లను తొలగిస్తాను. నేను కేవలం కనిపించే వచనాన్ని (visible text) మాత్రమే ఉంచుతాను. ఇది టోకెన్ల సంఖ్యను మరియు ఖర్చును తగ్గిస్తుంది.
  • JSON మోడ్ లేదా ఫంక్షన్ కాలింగ్‌ను ఉపయోగించడం. ఇది LLMని స్ట్రక్చర్డ్ డేటాను తిరిగి ఇవ్వడానికి ప్రేరేపిస్తుంది.
  • రీట్రై లాజిక్‌ను ఉపయోగించడం. ఒకవేళ JSON తప్పుగా ఉంటే, కోడ్ మళ్ళీ ప్రయత్నిస్తుంది.
  • ఫలితాలను క్యాష్ (Cache) చేయడం. ఒకే పేజీ కోసం రెండుసార్లు డబ్బు చెల్లించకుండా ఉండటానికి, నేను ప్రతి URL కోసం విజయవంతమైన ఎక్స్‌ట్రాక్షన్లను సేవ్ చేస్తాను.

స్టాటిక్ మరియు చక్కగా నిర్మించబడిన సైట్‌లకు Regex మరియు BeautifulSoup ఇప్పటికీ ఉత్తమమైనవి. అవి వేగంగా మరియు ఉచితంగా ఉంటాయి.

గందరగోళంగా, అంచనా వేయలేని సైట్‌లకు LLMs మెరుగ్గా పనిచేస్తాయి. కానీ ఖర్చులను తక్కువగా ఉంచడానికి మీరు ముందుగా డేటాను శుభ్రం చేయాలి.

నేను నేర్చుకున్న పాఠాలు:

  • మీ ఖర్చులు మరియు విజయ రేట్లను పర్యవేక్షించండి.
  • మీ లాటెన్సీ (latency) పై దృష్టి పెట్టండి. LLM కాల్స్ మిల్లీసెకన్లలో కాకుండా సెకన్ల సమయం తీసుకుంటాయి.
  • అవుట్‌పుట్‌ను ధృవీకరించండి (Validate). ధర నిజమైన ధరలా ఉందో లేదో తనిఖీ చేయండి.
  • హైబ్రిడ్ సిస్టమ్‌ను ఉపయోగించండి. సులభమైన సైట్‌ల కోసం పార్సర్ (parser)ను మరియు గందరగోళంగా ఉన్న సైట్‌ల కోసం LLMను ఉపయోగించండి.

ఈ సెటప్ నాకు గంటల కొద్దీ పనిని ఆదా చేస్తుంది. నేను గంట కంటే తక్కువ సమయంలో కొత్త స్టోర్‌ను జోడించగలను.

మీరు గందరగోళంగా ఉన్న వెబ్ డేటాను ఎలా హ్యాండిల్ చేస్తారు? మీరు పార్సర్‌లను ఇష్టపడతారా లేదా LLMsని ఇష్టపడతారా?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/from-regex-to-llms-my-journey-extracting-unstructured-web-data-5gmh

Optional learning community: https://t.me/GyaanSetuAi