ನಿಮ್ಮ ಲಾಗ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸದ ಒಂದು AI Incident Copilot ಅನ್ನು ನಾನು ನಿರ್ಮಿಸಿದ್ದೇನೆ

ಪ್ರತಿಯೊಬ್ಬ ಎಂಜಿನಿಯರ್ ಕೂಡ ಇದನ್ನು ಮಾಡುತ್ತಾರೆ.

ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಏನಾದರೂ ಕೆಟ್ಟುಹೋಗುತ್ತದೆ. ನೀವು ಲಾಗ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಅವುಗಳನ್ನು AI ಚಾಟ್‌ಗೆ ಪೇಸ್ಟ್ ಮಾಡುತ್ತೀರಿ. ಸಹಾಯಕ್ಕಾಗಿ ಕೇಳುತ್ತೀರಿ. AI ಉತ್ತಮ ಉತ್ತರ ನೀಡುತ್ತದೆ.

ಹೆಚ್ಚಿನ ಜನರು ಇದು ಸಾಮಾನ್ಯ ಎಂದು ಭಾವಿಸುತ್ತಾರೆ. ಆದರೆ ಇದು ಅಷ್ಟೇನೂ ಸಾಮಾನ್ಯವಲ್ಲ. ಇದು ದೊಡ್ಡ ಭದ್ರತಾ ಅಪಾಯವಾಗಿದೆ.

ಪ್ರೊಡಕ್ಷನ್ ಲಾಗ್‌ಗಳು ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಅವುಗಳಲ್ಲಿ ಗ್ರಾಹಕರ ಐಡಿಗಳು (customer IDs), ಅಥೊರೈಸೇಶನ್ ದೋಷಗಳು (auth errors), ಸ್ಟ್ಯಾಕ್ ಟ್ರೇಸ್‌ಗಳು (stack traces) ಮತ್ತು API ಪ್ರತಿಕ್ರಿಯೆಗಳು ಇರುತ್ತವೆ. ಕೆಲವೊಮ್ಮೆ ಅವುಗಳಲ್ಲಿ ರಹಸ್ಯ ಮಾಹಿತಿ ಕೂಡ ಇರುತ್ತದೆ.

ಪ್ರಸ್ತುತ ಡಿಬಗ್ ಮಾಡುವ ವಿಧಾನವೆಂದರೆ ಖಾಸಗಿ ಡೇಟಾವನ್ನು ಚಾಟ್ ಬಾಕ್ಸ್‌ನಲ್ಲಿ ಪೇಸ್ಟ್ ಮಾಡಿ, ಏನಾದರೂ ಒಳ್ಳೆಯದಾಗಲಿ ಎಂದು ಆಶಿಸುವುದು. ಡೇಟಾ ಸೋರಿಕೆಯ ಅಪಾಯವಿಲ್ಲದೆ ನನಗೆ AI ಸಹಾಯ ಬೇಕಿತ್ತು.

ಆದ್ದರಿಂದ ನಾನು ಒಂದು AI incident copilot ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ನಾನು ಒಂದು ನಿಯಮವನ್ನು ಪಾಲಿಸಿದೆ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಾವು ನಿರಾಕರಿಸಿದರೂ ಸಹ, ಈ ಅಪ್ಲಿಕೇಶನ್ ಉಪಯುಕ್ತವಾಗಿರಬೇಕು.

ಈ ಅಪ್ಲಿಕೇಶನ್ ಒಂದು AI war room ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ನೀವು ಲಾಗ್‌ಗಳು, ಟ್ರೇಸ್‌ಗಳು ಅಥವಾ ದೋಷಗಳನ್ನು ಪೇಸ್ಟ್ ಮಾಡಿದಾಗ, ಇದು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ:

• ಬದಲಾವಣೆಗಳನ್ನು ಸಾರಾಂಶಗೊಳಿಸಲು • ವೈಫಲ್ಯದ ಅಂಶಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು • ಗೊಂದಲಮಯ ಲಾಗ್‌ಗಳನ್ನು ಗುಂಪು ಮಾಡಲು • ಸ್ಟ್ಯಾಕ್ ಟ್ರೇಸ್‌ಗಳನ್ನು ವಿವರಿಸಲು • ಪರಿಹಾರ ಕ್ರಮಗಳನ್ನು ಸೂಚಿಸಲು • ಪೋಸ್ಟ್‌ಮೋರ್ಟಮ್ ಟೈಮ್‌ಲೈನ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಲು

ಹೆಚ್ಚಿನ డೆವಲಪರ್‌ಗಳು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹೀಗೆ ನಿರ್ಮಿಸುತ್ತಾರೆ: Input → Backend → Database → LLM → Database → UI.

ಇದು ನಿರ್ಮಾಣ ಮಾಡುವ ಅಪಾಯಕಾರಿ ವಿಧಾನವಾಗಿದೆ. ಈಗ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಯೊಂದು ಪ್ರೊಡಕ್ಷನ್ ವೈಫಲ್ಯದ ಆರ್ಕೈವ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನೀವು ಡೇಟಾ ಸೋರಿಕೆ (breaches), ಬ್ಯಾಕಪ್‌ಗಳು ಮತ್ತು ಅಡ್ಮಿನ್ ಪ್ರವೇಶದ ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಕಾಗುತ್ತದೆ.

ನನಗೆ ಬೇಕಾಗಿದ್ದು ಒಂದು ಖಾಸಗಿ ಸ್ಕ್ರ್ಯಾಚ್‌ಪ್ಯಾಡ್ (private scratchpad), SaaS ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಅಲ್ಲ.

ನನ್ನ ವಿನ್ಯಾಸದ ನಿಯಮವೆಂದರೆ: ಡೇಟಾವನ್ನು ಪ್ರೊಸೆಸ್ ಮಾಡಿ, ಆದರೆ ಅದನ್ನು ಸಂಗ್ರಹಿಸಬೇಡಿ.

ಇದರ ಆರ್ಕಿಟೆಕ್ಚರ್ ವಿಭಿನ್ನವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

  • ಚಾಟ್ ಇತಿಹಾಸವು ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲೇ ಇರುತ್ತದೆ.
  • ಬ್ಯಾಕೆಂಡ್ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು (prompts) ಉಳಿಸುವುದಿಲ್ಲ.
  • ಬ್ಯಾಕೆಂಡ್ ಮಾಡೆಲ್ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಉಳಿಸುವುದಿಲ್ಲ.
  • ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯು (request) ತಾತ್ಕಾಲಿಕವಾಗಿರುತ್ತದೆ.

ನಾನು Icelake AI API ಅನ್ನು ಬಳಸಿದ್ದೇನೆ ಏಕೆಂದರೆ ಅದು ಈ ಗೌಪ್ಯತಾ ಮಾದರಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ. ಸರ್ವರ್ ಮೂರು ಹಂತಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:

  1. ಸೂಕ್ಷ್ಮ ಮೌಲ್ಯಗಳನ್ನು ರಿಸ್ಯಾಕ್ಟ್ (Redact) ಮಾಡುತ್ತದೆ.
  2. API ಗೆ ಕನಿಷ್ಠ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
  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