നിങ്ങളുടെ ലോഗുകൾ സൂക്ഷിക്കാത്ത ഒരു AI ഇൻസിഡന്റ് കോപൈലറ്റ് ഞാൻ നിർമ്മിച്ചു

എല്ലാ എഞ്ചിനീയർമാരും ഇത് ചെയ്യാറുണ്ട്.

പ്രൊഡക്ഷനിൽ എന്തെങ്കിലും തകരാർ സംഭവിക്കുന്നു. നിങ്ങൾ ലോഗുകൾ എടുക്കുന്നു. അവ ഒരു AI ചാറ്റിൽ പേസ്റ്റ് ചെയ്യുന്നു. നിങ്ങൾ സഹായം ചോദിക്കുന്നു. AI നല്ലൊരു മറുപടി നൽകുന്നു.

മിക്ക ആളുകളും ഇത് സാധാരണമാണെന്ന് കരുതുന്നു. എന്നാൽ അങ്ങനെയല്ല. ഇതൊരു വലിയ സുരക്ഷാ ഭീഷണിയാണ്.

പ്രൊഡക്ഷൻ ലോഗുകളിൽ സെൻസിറ്റീവ് ആയ വിവരങ്ങൾ അടങ്ങിയിട്ടുണ്ട്. അവയിൽ കസ്റ്റമർ ഐഡികൾ, ഓതറൈസേഷൻ എററുകൾ (auth errors), സ്റ്റാക്ക് ട്രാസുകൾ (stack traces), API റെസ്പോൺസുകൾ എന്നിവ ഉണ്ടാകാം. ചിലപ്പോൾ അവയിൽ രഹസ്യ വിവരങ്ങൾ പോലും ഉണ്ടാകാം.

സ്വകാര്യ വിവരങ്ങൾ ഒരു ചാറ്റ് ബോക്സിൽ പേസ്റ്റ് ചെയ്ത് ഭാഗ്യം പരീക്ഷിക്കുക എന്നതാണ് നിലവിലെ ഡീബഗ്ഗിംഗ് രീതി. ഡാറ്റ ചോരാനുള്ള സാധ്യതയില്ലാതെ തന്നെ AI സഹായം എനിക്ക് വേണമായിരുന്നു.

അതിനാൽ ഞാൻ ഒരു AI ഇൻസിഡന്റ് കോപൈലറ്റ് നിർമ്മിച്ചു. ഞാൻ ഒരു നിയമം പാലിച്ചു: നിങ്ങളുടെ ഡാറ്റ സൂക്ഷിക്കാൻ വിസമ്മതിച്ചാലും ആപ്പ് ഉപയോഗപ്രദമായിരിക്കണം.

ഈ ആപ്പ് ഒരു AI വാർ റൂം (war room) പോലെ പ്രവർത്തിക്കുന്നു. നിങ്ങൾ ലോഗുകൾ, ട്രാസുകൾ അല്ലെങ്കിൽ എററുകൾ എന്നിവ പേസ്റ്റ് ചെയ്യുമ്പോൾ അത് നിങ്ങളെ സഹായിക്കുന്നു:

• മാറ്റങ്ങൾ സംഗ്രഹിക്കാൻ • പരാജയപ്പെട്ട പോയിന്റുകൾ കണ്ടെത്താൻ • അനാവശ്യമായ ലോഗുകൾ ഗ്രൂപ്പ് ചെയ്യാൻ • സ്റ്റാക്ക് ട്രാസുകൾ വിശദീകരിക്കാൻ • പരിഹാര മാർഗങ്ങൾ നിർദ്ദേശിക്കാൻ • പോസ്റ്റ്മോർട്ടം ടൈംലൈനുകൾ തയ്യാറാക്കാൻ

മിക്ക ഡെവലപ്പർമാരും ഇത്തരത്തിലാണ് ആപ്പുകൾ നിർമ്മിക്കുന്നത്: Input → Backend → Database → LLM → Database → UI.

അത് അപകടകരമായ രീതിയാണ്. ഇപ്പോൾ നിങ്ങളുടെ ആപ്പിന് ഓരോ പ്രൊഡക്ഷൻ പരാജയത്തിന്റെയും ഒരു ആർക്കൈവ് സ്വന്തമായി ലഭിക്കുന്നു. ഡാറ്റാ ചോർച്ചകൾ (breaches), ബാക്കപ്പുകൾ, അഡ്മിൻ ആക്സസ് എന്നിവയെക്കുറിച്ച് നിങ്ങൾ ആശങ്കപ്പെടേണ്ടി വരും.

എനിക്ക് വേണ്ടത് ഒരു സ്വകാര്യ സ്ക്രാച്ച്പാഡ് (private scratchpad) ആയിരുന്നു, അല്ലാതെ ഒരു SaaS ഡാഷ്‌ബോർഡ് അല്ല.

എന്റെ ഡിസൈൻ നിയമം ഇതാണ്: ഡാറ്റ പ്രോസസ്സ് ചെയ്യുക, എന്നാൽ അത് ശേഖരിക്കരുത്.

ഇതിന്റെ ആർക്കിടെക്ചർ വ്യത്യസ്തമാണ്:

  • ചാറ്റ് ഹിസ്റ്ററി നിങ്ങളുടെ ബ്രൗസറിൽ തന്നെ നിൽക്കുന്നു.
  • ബാക്കെൻഡ് പ്രോംപ്റ്റുകൾ (prompts) സേവ് ചെയ്യുന്നില്ല.
  • ബാക്കെൻഡ് മോഡൽ റെസ്പോൺസുകൾ സേവ് ചെയ്യുന്നില്ല.
  • ഓരോ റിക്വസ്റ്റും താൽക്കാലികമാണ് (disposable).

ഈ പ്രൈവസി മോഡലിന് അനുയോജ്യമായതിനാൽ ഞാൻ Icelake AI API ഉപയോഗിച്ചു. സെർവർ മൂന്ന് ഘട്ടങ്ങളാണ് ചെയ്യുന്നത്:

  1. സെൻസിറ്റീവ് ആയ മൂല്യങ്ങൾ മായ്ച്ചുകളയുന്നു (Redacts).
  2. കുറഞ്ഞ വിവരങ്ങൾ മാത്രമുള്ള ഒരു പ്രോംപ്റ്റ് API-ലേക്ക് അയക്കുന്നു.
  3. റിക്വസ്റ്റ് സേവ് ചെയ്യാതെ തന്നെ ഉത്തരം തിരികെ നൽകുന്നു.

വിവരങ്ങൾ മായ്ച്ചുകളയുന്നത് (Redaction) സഹായിക്കുമെങ്കിലും അതൊരു മാന്ത്രിക കവചമല്ല. അത് എല്ലാ കാര്യങ്ങളും പിടികൂടില്ല. റിക്വസ്റ്റ് അവസാനിച്ചതിന് ശേഷം നിങ്ങൾ എത്രത്തോളം ഡാറ്റ സൂക്ഷിക്കുന്നു എന്നത് കുറയ്ക്കുന്നതിലാണ് യഥാർത്ഥ വിജയം.

വിവരങ്ങൾ മായ്ച്ചുകളയുന്നത് കോൾ സമയത്തെ റിസ്ക് കുറയ്ക്കുന്നു. എന്നാൽ ലോഗുകൾ സൂക്ഷിക്കാത്തത് എന്നെന്നേക്കുമായി റിസ്ക് കുറയ്ക്കുന്നു.

മിക്ക AI ആപ്പുകളും ചോദിക്കുന്നത്: "ഞങ്ങൾക്ക് എന്തൊക്കെ ശേഖരിക്കാം?" എന്നാണ്. എന്നാൽ ഈ ആപ്പ് ചോദിക്കുന്നത്: "എന്തൊക്കെ ശേഖരിക്കാതിരിക്കാം?" എന്നാണ്.

ഈ സമീപനം ഉൽപ്പന്നത്തെ കൂടുതൽ മികച്ചതാക്കുന്നു. ഉപയോക്താക്കൾക്ക് സുരക്ഷിതത്വം തോന്നുന്നു. തങ്ങളുടെ വിവരങ്ങൾ എന്റെ ഡാറ്റാബേസിൽ സൂക്ഷിക്കപ്പെടുന്നില്ലെന്ന് അറിയാവുന്നത് കൊണ്ട് യഥാർത്ഥ പ്രശ്നസമയത്ത് ഇത് ഉപയോഗിക്കാൻ അവർ തയ്യാറാകുന്നു.

അടുത്ത തലമുറയിലെ AI ആപ്പുകൾ അവ എത്രത്തോളം ബുദ്ധിയുള്ളതാണ് എന്നതിലല്ല മത്സരിക്കേണ്ടത്. മറിച്ച്, എത്രത്തോളം നിയന്ത്രണങ്ങളോടെ പ്രവർത്തിക്കുന്നു എന്നതിലാണ്.

സ്വയം ചോദിക്കുക: • നിങ്ങൾ എന്തൊക്കെ സൂക്ഷിക്കാൻ വിസമ്മതിക്കുന്നു? • നിങ്ങൾക്ക് പോലും ആക്സസ് ചെയ്യാൻ കഴിയാത്ത രീതിയിൽ നിങ്ങൾ എന്തൊക്കെ മാറ്റുന്നു? • സെഷൻ അവസാനിക്കുമ്പോൾ എന്തൊക്കെ അപ്രത്യക്ഷമാകുന്നു?

എല്ലാ കാര്യങ്ങളും ഓർമ്മിച്ചുവെക്കാത്തതുകൊണ്ടാണ് AI ടൂളുകൾ ഉപയോഗപ്രദമാകുന്നത്.

Source: https://dev.to/bart_holden_0d0cf2aaa0424/i-built-an-ai-incident-copilot-that-does-not-store-your-production-logs-3l0p

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