ഞാൻ 1,000 വരികളുള്ള പൈത്തൺ കോഡിന് പകരം 500 വാക്കുകളുള്ള ഒരു പ്രോംപ്റ്റ് ഉപയോഗിച്ചു
എന്റെ ഡോക്യുമെന്റേഷൻ വിക്കി (documentation wiki) വളരെ കുഴപ്പത്തിലായിരുന്നു. പേജുകൾക്ക് ടാഗുകൾ ഇല്ലായിരുന്നു. പുസ്തകങ്ങൾ തെറ്റായ ഷെൽഫുകളിലായിരുന്നു. മെറ്റാഡാറ്റ (Metadata) പഴയതായിരുന്നു. നിയമങ്ങൾ എഴുതാൻ ഞാൻ ശ്രമിച്ചു, പക്ഷേ അവ നടപ്പിലാക്കാൻ എനിക്ക് സമയമില്ലായിരുന്നു.
ഇത് പരിഹരിക്കാൻ ഒരു AI ഏജന്റിനെ നിർമ്മിക്കാൻ ഞാൻ ശ്രമിച്ചു.
വേർഷൻ 1 (Version 1) ഒരു പൈത്തൺ സർവീസായിരുന്നു. ഞാൻ 1,000 വരി കോഡ് എഴുതി. ഒരു റൂൾ എഞ്ചിനും (rule engine), ഒരു API wrapper-ഉം, റീട്രൈ ലോജിക്കും (retry logic) ഞാൻ നിർമ്മിച്ചു. അത് പരാജയപ്പെട്ടു. ഓരോ തവണ പ്രവർത്തിക്കുമ്പോഴും അതിന് പണം ചിലവാകുന്നുണ്ടായിരുന്നു. എന്റെ സ്വന്തം കോഡിനുള്ളിൽ തന്നെ ബഗുകൾ (bugs) ഒളിപ്പിച്ചു വെക്കാനും അത് കാരണമായി.
ഞാൻ ഇതിനോടകം പണം നൽകി ഉപയോഗിക്കുന്ന ടൂളുകൾ തന്നെ വീണ്ടും നിർമ്മിക്കുകയാണെന്ന് എനിക്ക് മനസ്സിലായി.
വേർഷൻ 2 (Version 2) വ്യത്യസ്തമാണ്. ഞാൻ ഒരു ലളിതമായ Kubernetes CronJob ആണ് ഉപയോഗിക്കുന്നത്. കണ്ടെയ്നർ (container) ഒരു കമാൻഡ്-ലൈൻ AI ടൂൾ പ്രവർത്തിപ്പിക്കുന്നു. ഇതിന്റെ ലോജിക് 500 വാക്കുകളുള്ള ഒരു പ്രോംപ്റ്റിലാണ് അടങ്ങിയിരിക്കുന്നത്.
ഈ രീതി കൂടുതൽ ഫലപ്രദമായി പ്രവർത്തിക്കുന്നു കാരണം:
• ഓരോ തവണ പ്രവർത്തിക്കുമ്പോഴും ഇതിന് പണം ചിലവാകുന്നില്ല. വിലകൂടിയ API കീകൾക്ക് പകരം എന്റെ നിലവിലുള്ള സബ്സ്ക്രിപ്ഷൻ (subscription) ഇത് ഉപയോഗിക്കുന്നു. • ഇത് മികച്ച വിവേചനാധികാരം ഉപയോഗിക്കുന്നു. അനാവശ്യമായ മാറ്റങ്ങൾ വരുത്തുന്നതിന് പകരം സാധ്യമായ പ്രശ്നങ്ങൾ ഇത് എനിക്ക് മുന്നറിയിപ്പായി നൽകുന്നു. • ഇത് കൈകാര്യം ചെയ്യാൻ എളുപ്പമാണ്. എന്റെ കോഡ് 1,000 വരികളിൽ നിന്ന് 50 വരി ഷെൽ സ്ക്രിപ്റ്റായി (shell script) മാറി.
ഒരു AI-ക്ക് സുരക്ഷിതമായി 'റൈറ്റ് ആക്സസ്' (write access) നൽകുന്നത് എങ്ങനെ:
- രണ്ട് തരത്തിലുള്ള പ്രവർത്തനങ്ങൾ ഉപയോഗിക്കുക. ടയർ 1 (Tier 1) എന്നത് ടൈപ്പോഗ്രാഫി തെറ്റുകൾ തിരുത്തുന്നത് പോലുള്ള വ്യക്തമായ കാര്യങ്ങൾക്കാണ്. ടയർ 2 (Tier 2) എന്നത് തീരുമാനങ്ങൾ എടുക്കുന്നതിനാണ്. ടയർ 2-ൽ, ഏജന്റ് ഒരു മാറ്റം നിർദ്ദേശിക്കുക മാത്രമേ ചെയ്യുന്നുള്ളൂ. അത് ഒരിക്കലും ഡാറ്റയിൽ മാറ്റം വരുത്തുന്നില്ല.
- സ്വയം പരിശോധന നിർബന്ധമാക്കുക. "ഈ മാറ്റത്തോട് ഒരു മനുഷ്യൻ എതിർക്കുമോ?" എന്ന് ഏജന്റിനോട് ചോദിക്കാൻ പ്രോംപ്റ്റ് നിർദ്ദേശിക്കുന്നു. ഉത്തരം 'അതെ' എന്നാണെങ്കിൽ ഏജന്റ് പ്രവർത്തനം നിർത്തുന്നു.
- 'അൺഡൂ' (undo) ബട്ടണുകളെ ആശ്രയിക്കുക. വേർഷൻ ഹിസ്റ്ററി (version history) ഉള്ള സിസ്റ്റങ്ങളിൽ മാത്രം ഈ രീതി ഉപയോഗിക്കുക. ഏജന്റ് എന്തെങ്കിലും തെറ്റ് ചെയ്താൽ, ഒരു ക്ലിക്കിലൂടെ അത് ശരിയാക്കാം. കർശനമായ അനുമതികളേക്കാൾ (permissions) മാറ്റങ്ങൾ തിരുത്താനുള്ള കഴിവിനാണ് (reversibility) ഇവിടെ പ്രാധാന്യം.
പഠിച്ച പാഠങ്ങൾ:
- പ്രോംപ്റ്റുകൾ കോഡാണ്. നിങ്ങളുടെ പ്രോംപ്റ്റിനെ ഒരു സോഫ്റ്റ്വെയർ മോഡ്യൂൾ (software module) പോലെ പരിഗണിക്കുക. അത് Git-ൽ സൂക്ഷിക്കുകയും കൃത്യമായി പരിശോധിക്കുകയും ചെയ്യുക.
- സങ്കീർണ്ണമായ ഓർക്കസ്ട്രേഷൻ (orchestration) മറന്നേക്കൂ. നിങ്ങളുടെ കോഡ് റീട്രൈകളും റൗട്ടിംഗും (retries and routing) കൈകാര്യം ചെയ്യാൻ മാത്രമാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങൾ വെറുതെ ഒരു സങ്കീർണ്ണമായ സംവിധാനം നിർമ്മിക്കുകയാണ്. അതിനു പകരം ഒരു പ്രോംപ്റ്റും ഒരു ഷെഡ്യൂളും (schedule) ഉപയോഗിക്കുക.
- സാമ്പത്തിക കാര്യങ്ങൾ നിങ്ങളുടെ ഡിസൈനിനെ മാറ്റുന്നു. ഓരോ തവണ പ്രവർത്തിക്കുമ്പോഴും പണം ചിലവാകുന്നില്ലെങ്കിൽ, ചെറിയ മാറ്റങ്ങൾ ട്രാക്ക് ചെയ്യാൻ സങ്കീർണ്ണമായ കോഡ് ആവശ്യമില്ല. നിങ്ങൾക്ക് എല്ലാം വീണ്ടും സ്കാൻ (re-scan) ചെയ്യാവുന്നതാണ്.
ഇപ്പോൾ വിക്കി വൃത്തിയുള്ളതാണ്. ലൈബ്രേറിയൻ ഒരിക്കലും ഉറങ്ങുന്നില്ല, എനിക്ക് ബില്ലും അയക്കുന്നില്ല.
Source: https://dev.to/saltxd/i-replaced-1000-lines-of-python-with-a-500-word-prompt-29ao
Optional learning community: https://t.me/GyaanSetuAi
