എന്റെ AI ഡയറക്ടറി സ്റ്റാക്കിനെ പ്രവർത്തിപ്പിക്കുന്ന, ശ്രദ്ധിക്കപ്പെടാതെ പോയ 5 പാക്കേജുകൾ

ഒരു പ്രോജക്റ്റിന്റെ ഏറ്റവും മികച്ച ഭാഗങ്ങൾ എപ്പോഴും അതിന്റെ AI മോഡലോ ഹോസ്റ്റിംഗ് പ്ലാറ്റ്‌ഫോമോ ആകണമെന്നില്ല.

എന്റെ പാക്കേജ് ഫയലുകളിലെ അഞ്ച് ഡിപ്പൻഡൻസികളുടെ (dependencies) സോഴ്സ് കോഡ് വായിക്കാൻ ഞാൻ സമയം ചെലവഴിച്ചു. ഈ ടൂളുകൾ ഇപ്പോൾ ട്രെൻഡിംഗ് അല്ലായിരിക്കാം, പക്ഷേ അവ എന്റെ സിസ്റ്റത്തിന്റെ അടിസ്ഥാന തൂണുകളാണ്.

എന്റെ സ്റ്റാക്കിൽ Astro 5, Turso libSQL, GitHub Actions, Claude Haiku 4.5 എന്നിവയാണ് ഉപയോഗിക്കുന്നത്. ഞാൻ മൂന്ന് സൈറ്റുകൾ നടത്തുന്നുണ്ട്: Top AI Tools, Find Games Like, പിന്നെ Open Alternative To. ഇതിന്റെ ഇൻഫ്രാസ്ട്രക്ചർ വളരെ ശക്തമാണ്. ഇത് ബഗുകൾ പരിഹരിക്കുന്നതിന് പകരം ഉള്ളടക്കത്തിൽ (content) ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ എന്നെ സഹായിക്കുന്നു.

ആ അഞ്ച് ടൂളുകൾ ഇവയാണ്:

  • tsx എല്ലാ ETL സ്ക്രിപ്റ്റുകളും പ്രവർത്തിപ്പിക്കാൻ ഞാൻ ഇത് ഉപയോഗിക്കുന്നു. അധിക കോൺഫിഗറേഷനുകൾ ഇല്ലാതെ തന്നെ ഇത് പ്രവർത്തിക്കും. ഇത് esbuild ഉപയോഗിക്കുന്നതിനാൽ സ്റ്റാർട്ടപ്പ് വളരെ വേഗത്തിലാണ്. ഇത് ടൈപ്പ് ചെക്കിംഗ് (type checking) ചെയ്യുന്നില്ല. CI സമയത്ത് ടൈപ്പ് ചെക്കിംഗിനായി ഞാൻ pnpm ഉപയോഗിക്കുന്നു. ഈ ഒരു വിട്ടുവീഴ്ച എന്റെ സ്ക്രിപ്റ്റുകൾ വേഗത്തിൽ പ്രവർത്തിക്കാൻ സഹായിക്കുന്നു.

  • Pagefind എന്റെ ബിൽഡ് സ്റ്റെപ്പിന് ശേഷം ഇത് പ്രവർത്തിക്കുന്നു. ഇത് എന്റെ HTML ക്രോൾ (crawl) ചെയ്യുകയും ഒരു കംപ്രസ്ഡ് ഇൻഡക്സ് (compressed index) നിർമ്മിക്കുകയും ചെയ്യുന്നു. Vercel അല്ലെങ്കിൽ Cloudflare പോലുള്ള സ്റ്റാറ്റിക് ഹോസ്റ്റുകളിൽ അധിക സെറ്റപ്പുകൾ ഇല്ലാതെ തന്നെ ഇത് പ്രവർത്തിക്കും. ഇൻഡക്സ് സൈസ് വളരെ ചെറുതായിരിക്കും. എന്റെ Astro കംപോണന്റുകളിൽ റിസൾട്ടുകൾ എങ്ങനെ കാണപ്പെടണം എന്ന് നിയന്ത്രിക്കാൻ ഞാൻ നേരിട്ട് JS API ഉപയോഗിക്കുന്നു.

  • Crawlee ഞാൻ ഇത് ഇതുവരെ ഉപയോഗിച്ചിട്ടില്ല, പക്ഷേ ഉപയോഗിക്കാൻ പദ്ധതിയിടുന്നുണ്ട്. നിലവിൽ ഡാറ്റയ്ക്കായി ഞാൻ മാനുവൽ പാഴ്സിംഗ് (manual parsing) ആണ് ഉപയോഗിക്കുന്നത്. Crawlee റിക്വസ്റ്റ് ക്യൂകളും (request queues) റേറ്റ് ലിമിറ്റിംഗും (rate limiting) നൽകുന്നു. API ഇല്ലാത്ത സൈറ്റുകളിൽ നിന്ന് ഡാറ്റ സ്ക്രാപ്പ് (scraping) ചെയ്യാൻ തുടങ്ങുമ്പോൾ ഉപയോഗിക്കാൻ പറ്റിയ ടൂളാണിത്.

  • yaml എന്റെ ലേഖനങ്ങളിലെ ഫ്രണ്ട്മാറ്റർ (frontmatter) പാഴ്സ് ചെയ്യാൻ ഇത് ഉപയോഗിക്കുന്നു. ഇത് വളരെ ചെറുതും മറ്റ് ഡിപ്പൻഡൻസികളില്ലാത്തതുമാണ്. സങ്കീർണ്ണമായ ഒബ്‌ജക്റ്റുകളെ (complex objects) ഇത് നന്നായി കൈകാര്യം ചെയ്യുന്നു. കമന്റുകൾ നിലനിർത്തിക്കൊണ്ട് തന്നെ ഒബ്‌ജക്റ്റുകളെ വീണ്ടും YAML ആക്കി മാറ്റാനും ഇതിന് കഴിയും. ഫയലുകൾ ഓട്ടോമാറ്റിക്കായി അപ്‌ഡേറ്റ് ചെയ്യുമ്പോൾ ഇത് സഹായിക്കുന്നു.

  • @libsql/client എന്റെ സ്ക്രിപ്റ്റുകളെ Turso-യുമായി ബന്ധിപ്പിക്കുന്നത് ഇതാണ്. ഞാൻ ഇതിന്റെ ബാച്ച് API-യെയാണ് (batch API) ആശ്രയിക്കുന്നത്. ഒരു നെറ്റ്‌വർക്ക് ട്രിപ്പിലൂടെ തന്നെ ഒന്നിലധികം സ്റ്റേറ്റ്‌മെന്റുകൾ പ്രവർത്തിപ്പിക്കാൻ ഇതിലൂടെ സാധിക്കും. ടേബിളുകൾ സീഡ് (seeding) ചെയ്യുമ്പോൾ ഇത് വളരെ വേഗതയുള്ളതാണ്. കൂടാതെ നെറ്റ്‌വർക്ക് ഇല്ലാതെ തന്നെ ലോക്കലായി ഇത് പ്രവർത്തിക്കും. ഡെവലപ്‌മെന്റ് സമയത്ത് ഇത് എന്റെ API ക്വാട്ട ലാഭിക്കാൻ സഹായിക്കുന്നു.

ഈ പാക്കേജുകൾ എന്റെ സിസ്റ്റത്തിന്റെ നിശബ്ദമായ ഇൻഫ്രാസ്ട്രക്ചറുകളാണ്. എന്റെ സ്റ്റാക്കിലെ AI ഭാഗങ്ങൾക്ക് അവയുടെ ജോലി കൃത്യമായി ചെയ്യാൻ ഇവ സഹായിക്കുന്നു.

Source: https://dev.to/morinaga/five-overlooked-packages-running-my-ai-directory-stack-1lem