ਮੈਂ ਇੱਕ ਅਜਿਹਾ AI Incident Copilot ਬਣਾਇਆ ਹੈ ਜੋ ਤੁਹਾਡੇ ਲੌਗਸ (logs) ਨੂੰ ਸਟੋਰ ਨਹੀਂ ਕਰਦਾ

ਹਰ ਇੰਜੀਨੀਅਰ ਇਹੀ ਕਰਦਾ ਹੈ।

ਪ੍ਰੋਡਕਸ਼ਨ (production) ਵਿੱਚ ਕੁਝ ਖਰਾਬ ਹੋ ਜਾਂਦਾ ਹੈ। ਤੁਸੀਂ ਲੌਗਸ (logs) ਲੈਂਦੇ ਹੋ। ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਇੱਕ AI ਚੈਟ ਵਿੱਚ ਪੇਸਟ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਮਦਦ ਮੰਗਦੇ ਹੋ। AI ਇੱਕ ਵਧੀਆ ਜਵਾਬ ਦਿੰਦਾ ਹੈ।

ਜ਼ਿਆਦਾਤਰ ਲੋਕ ਸੋਚਦੇ ਹਨ ਕਿ ਇਹ ਆਮ ਗੱਲ ਹੈ। ਇਹ ਨਹੀਂ ਹੈ। ਇਹ ਸੁਰੱਖਿਆ ਦਾ ਇੱਕ ਵੱਡਾ ਖ਼ਤਰਾ ਹੈ।

ਪ੍ਰੋਡਕਸ਼ਨ ਲੌਗਸ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਹੁੰਦਾ ਹੈ। ਉਹਨਾਂ ਵਿੱਚ ਕਸਟਮਰ IDs, auth errors, stack traces, ਅਤੇ API responses ਹੁੰਦੇ ਹਨ। ਕਈ ਵਾਰ ਉਹਨਾਂ ਵਿੱਚ ਸੀਕਰੇਟਸ (secrets) ਵੀ ਹੁੰਦੇ ਹਨ।

ਡੀਬੱਗ (debug) ਕਰਨ ਦਾ ਮੌਜੂਦਾ ਤਰੀਕਾ ਨਿੱਜੀ ਡੇਟਾ ਨੂੰ ਚੈਟ ਬਾਕਸ ਵਿੱਚ ਪੇਸਟ ਕਰਨਾ ਅਤੇ ਉਮੀਦ ਕਰਨਾ ਹੈ ਕਿ ਸਭ ਠੀਕ ਰਹੇਗਾ। ਮੈਂ ਡੇਟਾ ਲੀਕ ਹੋਣ ਦੇ ਖ਼ਤਰੇ ਤੋਂ ਬਿਨਾਂ AI ਦੀ ਮਦਦ ਚਾਹੁੰਦਾ ਸੀ।

ਇਸ ਲਈ ਮੈਂ ਇੱਕ AI incident copilot ਬਣਾਇਆ। ਮੈਂ ਇੱਕ ਨਿਯਮ ਦੀ ਪਾਲਣਾ ਕੀਤੀ: ਐਪ ਉਦੋਂ ਵੀ ਉਪਯੋਗੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜੇਕਰ ਅਸੀਂ ਤੁਹਾਡਾ ਡੇਟਾ ਸਟੋਰ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰ ਦਈਏ।

ਇਹ ਐਪ ਇੱਕ AI war room ਵਜੋਂ ਕੰਮ ਕਰਦੀ ਹੈ। ਤੁਸੀਂ ਲੌਗਸ, traces, ਜਾਂ errors ਪੇਸਟ ਕਰਦੇ ਹੋ। ਇਹ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੀ ਹੈ:

• ਤਬਦੀਲੀਆਂ ਦਾ ਸਾਰ (Summarize changes) • ਅਸਫਲਤਾ ਦੇ ਬਿੰਦੂਆਂ (failure points) ਨੂੰ ਲੱਭਣਾ • ਸ਼ੋਰ ਵਾਲੇ (noisy) ਲੌਗਸ ਨੂੰ ਗਰੁੱਪ ਕਰਨਾ • stack traces ਦੀ ਵਿਆਖਿਆ ਕਰਨਾ • ਨਿਵਾਰਣ ਦੇ ਕਦਮਾਂ (mitigation steps) ਦਾ ਸੁਝਾਅ ਦੇਣਾ • postmortem timelines ਦਾ ਡਰਾਫਟ ਤਿਆਰ ਕਰਨਾ

ਜ਼ਿਆਦਾਤਰ ਡਿਵੈਲਪਰ ਇਸ ਤਰ੍ਹਾਂ ਦੀਆਂ ਐਪਸ ਬਣਾਉਂਦੇ ਹਨ: Input → Backend → Database → LLM → Database → UI।

ਇਹ ਬਣਾਉਣ ਦਾ ਇੱਕ ਖ਼ਤਰਨਾਕ ਤਰੀਕਾ ਹੈ। ਹੁਣ ਤੁਹਾਡੀ ਐਪ ਕੋਲ ਹਰ ਪ੍ਰੋਡਕਸ਼ਨ ਅਸਫਲਤਾ ਦਾ ਇੱਕ ਆਰਕਾਈਵ (archive) ਹੁੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਬ੍ਰੀਚ (breaches), ਬੈਕਅੱਪ (backups), ਅਤੇ ਐਡਮਿਨ ਐਕਸੈਸ (admin access) ਬਾਰੇ ਚਿੰਤਾ ਕਰਨੀ ਪੈਂਦੀ ਹੈ।

ਮੈਂ ਇੱਕ ਨਿੱਜੀ ਸਕ੍ਰੈਚਪੈਡ (scratchpad) ਚਾਹੁੰਦਾ ਸੀ, ਨਾ ਕਿ ਇੱਕ SaaS ਡੈਸ਼ਬੋਰਡ।

ਮੇਰਾ ਡਿਜ਼ਾਈਨ ਨਿਯਮ ਹੈ: ਡੇਟਾ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰੋ, ਇਸਨੂੰ ਇਕੱਠਾ ਨਾ ਕਰੋ।

ਆਰਕੀਟੈਕਚਰ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ:

  • ਚੈਟ ਹਿਸਟਰੀ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ।
  • ਬੈਕਐਂਡ ਪ੍ਰੋਂਪਟਸ (prompts) ਨੂੰ ਸੇਵ ਨਹੀਂ ਕਰਦਾ।
  • ਬੈਕਐਂਡ ਮਾਡਲ ਰਿਸਪਾਂਸ (model responses) ਨੂੰ ਸੇਵ ਨਹੀਂ ਕਰਦਾ।
  • ਹਰ ਰਿਕਵੈਸਟ (request) ਅਸਥਾਈ (disposable) ਹੁੰਦੀ ਹੈ।

ਮੈਂ Icelake AI API ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਕਿਉਂਕਿ ਇਹ ਇਸ ਪ੍ਰਾਈਵੇਸੀ ਮਾਡਲ ਦੇ ਅਨੁਕੂਲ ਹੈ। ਸਰਵਰ ਤਿੰਨ ਕਦਮ ਚੁੱਕਦਾ ਹੈ:

  1. ਸੰਵੇਦਨਸ਼ੀਲ ਵੈਲਯੂਜ਼ (sensitive values) ਨੂੰ ਰਿਡੈਕਟ (redact) ਕਰਦਾ ਹੈ।
  2. API ਨੂੰ ਇੱਕ ਘੱਟ ਤੋਂ ਘੱਟ (minimized) ਪ੍ਰੋਂਪਟ ਭੇਜਦਾ ਹੈ।
  3. ਰਿਕਵੈਸਟ ਨੂੰ ਸਟੋਰ ਕੀਤੇ ਬਿਨਾਂ ਜਵਾਬ ਵਾਪਸ ਕਰਦਾ ਹੈ।

ਰਿਡੈਕਸ਼ਨ (Redaction) ਮਦਦ ਕਰਦੀ ਹੈ, ਪਰ ਇਹ ਕੋਈ ਜਾਦੂਈ ਢਾਲ ਨਹੀਂ ਹੈ। ਇਹ ਸਭ ਕੁਝ ਨਹੀਂ ਫੜ ਸਕਦੀ। ਅਸਲ ਜਿੱਤ ਇਹ ਘਟਾਉਣ ਵਿੱਚ ਹੈ ਕਿ ਰਿਕਵੈਸਟ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਸੀਂ ਕਿੰਨਾ ਡੇਟਾ ਰੱਖਦੇ ਹੋ।

ਰਿਡੈਕਸ਼ਨ ਕਾਲ ਦੌਰਾਨ ਖ਼ਤਰਾ ਘਟਾਉਂਦੀ ਹੈ। ਲੌਗਸ ਨੂੰ ਸਟੋਰ ਨਾ ਕਰਨਾ ਖ਼ਤਰੇ ਨੂੰ ਹਮੇਸ਼ਾ ਲਈ ਘਟਾ ਦਿੰਦਾ ਹੈ।

ਜ਼ਿਆਦਾਤਰ AI ਐਪਸ ਪੁੱਛਦੀਆਂ ਹਨ: ਅਸੀਂ ਕੀ ਇਕੱਠਾ ਕਰ ਸਕਦੇ ਹਾਂ? ਇਹ ਐਪ ਪੁੱਛਦੀ ਹੈ: ਅਸੀਂ ਕੀ ਇਕੱਠਾ ਕਰਨ ਤੋਂ ਬਚ ਸਕਦੇ ਹਾਂ?

ਇਹ ਪਹੁੰਚ ਉਤਪਾਦ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਂਦੀ ਹੈ। ਉਪਭੋਗਤਾ ਸੁਰੱਖਿਅਤ ਮਹਿਸੂਸ ਕਰਦੇ ਹਨ। ਉਹ ਅਸਲ ਘਟਨਾਵਾਂ ਦੌਰਾਨ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਤਿਆਰ ਹਨ ਕਿਉਂਕਿ ਉਹ ਜਾਣਦੇ ਹਨ ਕਿ ਉਹਨਾਂ ਦੇ ਵਿਚਾਰ ਮੇਰੇ ਡੇਟਾਬੇਸ ਵਿੱਚ ਸਟੋਰ ਨਹੀਂ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ।

AI ਐਪਸ ਦੀ ਅਗਲੀ ਲਹਿਰ ਨੂੰ ਸਿਰਫ਼ ਇਸ ਗੱਲ 'ਤੇ ਮੁਕਾਬਲਾ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ ਕਿ ਉਹ ਕਿੰਨੀਆਂ ਸਮਾਰਟ ਹਨ। ਉਹਨਾਂ ਨੂੰ ਸੰਜਮ (restraint) 'ਤੇ ਮੁਕਾਬਲਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।

ਆਪਣੇ ਆਪ ਨੂੰ ਪੁੱਛੋ: • ਤੁਸੀਂ ਕੀ ਸਟੋਰ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰਦੇ ਹੋ? • ਤੁਸੀਂ ਆਪਣੇ ਲਈ ਕਿਸ ਚੀਜ਼ ਤੱਕ ਪਹੁੰਚ ਕਰਨਾ ਅਸੰਭਵ ਬਣਾਉਂਦੇ ਹੋ? • ਸੈਸ਼ਨ ਖਤਮ ਹੋਣ 'ਤੇ ਕੀ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ?

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