𝗙𝗿𝗼𝗺 𝗥𝗲𝗴𝗲𝘅 𝘁𝗼 𝗟𝗟𝗠𝘀: 𝗠𝘆 𝗝𝗼𝘂𝗿𝗻𝗲𝘆 𝗘𝘅𝘁𝗿𝗮𝗰𝘁𝗶𝗻𝗴 𝗨𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 𝗪𝗲𝗯 𝗗𝗮𝘁𝗮

ನಾನು ಬೆಲೆ ಹೋಲಿಕೆ ಸಾಧನವನ್ನು (price comparison tool) ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸಿದೆ. ಇದಕ್ಕೆ ಡಜನ್‌ಗಟ್ಟಲೆ ಇ-ಕಾಮರ್ಸ್ ಸೈಟ್‌ಗಳಿಂದ ಉತ್ಪನ್ನದ ಡೇಟಾ ಬೇಕಾಗಿತ್ತು.

ಪ್ರತಿಯೊಂದು ಸೈಟ್ ವಿಭಿನ್ನ HTML ರಚನೆಗಳನ್ನು ಬಳಸುತ್ತಿತ್ತು. ಕೆಲವು ಯಾದೃಚ್ಛಿಕ CSS ಕ್ಲಾಸ್‌ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದವು. ಇನ್ನು ಕೆಲವು ಕಂಟೆಂಟ್ ಲೋಡ್ ಮಾಡಲು JavaScript ಬಳಸುತ್ತಿದ್ದವು.

ನನ್ನ ಮೊದಲ ಯೋಜನೆಯು Regex ಮತ್ತು BeautifulSoup ಅನ್ನು ಬಳಸುತ್ತಿತ್ತು. ಇದು ಎರಡು ಸೈಟ್‌ಗಳಿಗೆ ಕೆಲಸ ಮಾಡಿತು. ನಂತರ ಎಲ್ಲವೂ ಹಾಳಾಯಿತು. ಒಂದು ಸೈಟ್ ತನ್ನ ಲೇಔಟ್ ಬದಲಾಯಿಸಿತು. ಇನ್ನೊಂದು ಸೈಟ್ ಡೈನಾಮಿಕ್ ಕಂಟೆಂಟ್ ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿತು. ಡೇಟಾವನ್ನು ಬಳಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಸ್ಕ್ರೇಪರ್‌ಗಳನ್ನು (scrapers) ಸರಿಪಡಿಸುವುದಕ್ಕೇ ನಾನು ಹೆಚ್ಚು ಸಮಯ ವ್ಯಯಿಸಿದೆ.

ನಂತರ ನಾನು LLM ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿದೆ. ನಾನು ಕಚ್ಚಾ HTML ಅನ್ನು AI ಗೆ ಕಳುಹಿಸಿ ಡೇಟಾವನ್ನು ಕೇಳಿದೆ. ಇದು ಕೂಡ ವಿಫಲವಾಯಿತು. ಔಟ್‌ಪುಟ್ ಅಸ್ಥಿರವಾಗಿತ್ತು. AI ತಪ್ಪು ಮಾಹಿತಿ (hallucinated values) ನೀಡಿತು. HTML ತುಂಬಾ ಹೆಚ್ಚಿನ ಟೋಕನ್‌ಗಳನ್ನು ಬಳಸುವುದರಿಂದ ನನ್ನ API ವೆಚ್ಚಗಳು ಹೆಚ್ಚಾದವು.

ನಾನು ಒಂದು ಮಧ್ಯಮ ಮಾರ್ಗವನ್ನು ಕಂಡುಕೊಂಡೆ. ಈಗ ನಾನು ಹೈಬ್ರಿಡ್ ವಿಧಾನವನ್ನು (hybrid approach) ಬಳಸುತ್ತಿದ್ದೇನೆ.

ನನ್ನ ಪ್ರಕ್ರಿಯೆ ಇಲ್ಲಿದೆ:

  • HTML ಅನ್ನು ಪ್ರಿ-ಪ್ರೊಸೆಸ್ (Preprocess) ಮಾಡುವುದು. ನಾನು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು, ಸ್ಟೈಲ್‌ಗಳು ಮತ್ತು ನ್ಯಾವಿಗೇಷನ್ ಬಾರ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತೇನೆ. ನಾನು ಕೇವಲ ಕಾಣಿಸುವ ಪಠ್ಯವನ್ನು ಮಾತ್ರ ಇರಿಸಿಕೊಳ್ಳುತ್ತೇನೆ. ಇದು ಟೋಕನ್ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಇಡುತ್ತದೆ.
  • JSON ಮೋಡ್ ಬಳಸುವುದು. LLM ಸ್ಟ್ರಕ್ಚರ್ಡ್ ಡೇಟಾವನ್ನು ನೀಡುವಂತೆ ಮಾಡಲು ನಾನು function calling ಅನ್ನು ಬಳಸುತ್ತೇನೆ.
  • ರಿಟ್ರೈ ಲಾಜಿಕ್ (retry logic) ಸೇರಿಸುವುದು. JSON ವಿಫಲವಾದರೆ ನಾನು ಮೂರು ಬಾರಿಗಳವರೆಗೆ ಮರುಪ್ರಯತ್ನಿಸುತ್ತೇನೆ.
  • ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ (Cache) ಮಾಡುವುದು. ಪುನರಾವರ್ತಿತ ವೆಚ್ಚಗಳನ್ನು ತಪ್ಪ