AI ಬರೆಯಲಾರದ ಕೋಡ್
ನಾನು ಫಾರ್ಮ್ ವ್ಯಾಲಿಡೇಶನ್ ಅನ್ನು ತಾಂತ್ರಿಕ ಸಂದರ್ಶನದ ಪ್ರಶ್ನೆಯಾಗಿ ಬಳಸುತ್ತೇನೆ. ಇದು ಸರಳವಾಗಿ ಕಾಣುತ್ತದೆ. ಆದರೆ ಉತ್ತರಗಳು ಜನರು ಹೇಗೆ ಯೋಚಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ.
ನಾನು ಈ ಸಮಸ್ಯೆಯನ್ನು Claude, ChatGPT ಮತ್ತು Gemini ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಿದೆ. ಅವೆಲ್ಲವೂ ಒಂದೇ ರೀತಿಯ ಪರಿಹಾರಗಳನ್ನು ನೀಡಿದವು.
ಹೆಚ್ಚಿನ ಜನರು ವಿಭಿನ್ನ ವಿಳಾಸಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಟೈಪ್ ಪ್ಯಾರಾಮೀಟರ್ ಹೊಂದಿರುವ ಒಂದೇ ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ಅದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದರೆ ಪ್ರತಿ ಹೊಸ ನಿಯಮವು ಅದೇ ಫಂಕ್ಷನ್ಗೆ ಹೊಸ ಬ್ರಾಂಚ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. ವ್ಯತ್ಯಾಸಗಳು ಅಡಗಿಯೇ ಇರುತ್ತವೆ.
ನಾನು ನೋಡಿದ ಅತ್ಯಂತ ಚತುರ ಮಾನವನ ಉತ್ತರವು recursion ಅನ್ನು ಬಳಸುತ್ತಿತ್ತು. ಇದು ಡೇಟಾ ರೂಪದ ಮೂಲಕ ಸಾಗುತ್ತದೆ. ಇದು ಸೊಗಸಾಗಿದೆ. ಆದರೆ ಅದರಲ್ಲಿ ಒಂದು ದೋಷವಿದೆ. ಇದು ಇರುವ ಫೀಲ್ಡ್ಗಳನ್ನು ಮಾತ್ರ ವ್ಯಾಲಿಡೇಟ್ ಮಾಡುತ್ತದೆ. ಒಂದು ಕೀ (key) ಇಲ್ಲದಿದ್ದರೆ, ಫಂಕ್ಷನ್ ಅದನ್ನು ಎಂದಿಗೂ ನೋಡುವುದಿಲ್ಲ. ಅದಕ್ಕೆ ಯಾವುದೇ source of truth ಇರುವುದಿಲ್ಲ.
ಮೂರೂ AIಗಳು ಇದೇ ತಪ್ಪನ್ನು ಮಾಡಿದವು. ನಾನು ಆ ದೋಷವನ್ನು ಎತ್ತಿ ತೋರಿಸಿದಾಗ, ಅವೆಲ್ಲವೂ ಒಂದು schema ಅನ್ನು ಸೂಚಿಸಿದವು. Schema-driven ವಿಧಾನವು ತಾಂತ್ರಿಕವಾಗಿ ಸರಿಯಾದದ್ದು. ಇದು ಕೀಗಳು ಇಲ್ಲದಿದ್ದರೂ ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಸುಲಭವಾಗಿ ವಿಸ್ತರಿಸಬಹುದು (scales well).
ಆದರೆ ಅದಕ್ಕಿಂತ ಉತ್ತಮವಾದ ಮಾರ್ಗವಿದೆ: Composition.
ಒಂದು ದೊಡ್ಡ ಫಂಕ್ಷನ್ ಅಥವಾ ಸಂಕೀರ್ಣವಾದ schema ಬದಲಿಗೆ, ನೀವು ಪ್ರತಿ ವಿಧಕ್ಕೂ ನಿರ್ದಿಷ್ಟ ಫಂಕ್ಷನ್ಗಳನ್ನು ರಚಿಸಬಹುದು.
- ಸಾಮಾನ್ಯ ವಿಳಾಸಕ್ಕಾಗಿ ಒಂದು ಫಂಕ್ಷನ್.
- ಶಿಪ್ಪಿಂಗ್ಗಾಗಿ ಒಂದು ಫಂಕ್ಷನ್.
- ಬಿಲ್ಲಿಂಗ್ಗಾಗಿ ಒಂದು ಫಂಕ್ಷನ್.
ನಿಮ್ಮ ವ್ಯಾಲಿಡೇಟರ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ನೀವು ಅವುಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತೀರಿ.
ಈ ವಿಧಾನವು ಕೀ ಇಲ್ಲದ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. ಬಿಲ್ಲಿಂಗ್ ವ್ಯಾಲಿಡೇಟರ್ ಕೀ ಇಲ್ಲದಿದ್ದರೂ ಯಾವಾಗಲೂ VAT ಸಂಖ್ಯೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಏಕೆಂದರೆ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವು ಒಂದು ನೈಜ ವ್ಯವಹಾರದ ಪರಿಕಲ್ಪನೆಯಾಗಿದೆ. ಅದು ಕೇವಲ ನಿಮ್ಮ ಡೇಟಾದಲ್ಲಿರುವ ಒಂದು ಪ್ಯಾಟರ್ನ್ ಮಾತ್ರವಲ್ಲ.
ವ್ಯತ್ಯಾಸಗಳು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಕ್ತವಾಗುತ್ತವೆ. ಹೊಸ ವಿಳಾಸದ ವಿಧ ಬಂದಾಗ, ನೀವು ಹೊಸ ಫಂಕ್ಷನ್ ಅನ್ನು ಸೇರಿಸುತ್ತೀರಿ. ನೀವು ಹಳೆಯ ಕೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದಿಲ್ಲ.
AI ಮತ್ತು ಅತ್ಯುತ್ತಮ ಎಂಜಿನಿಯರ್ಗಳು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ಬಲೆಯಲ್ಲಿ ಬೀಳುತ್ತಾರೆ. ಪ್ಯಾಟರ್ನ್ಗಳನ್ನು ಹುಡುಕಲು ಮತ್ತು ಲಾಜಿಕ್ ಅನ್ನು ಕೇಂದ್ರೀಕರಿಸಲು ನಮಗೆ ಕಲಿಸಲಾಗುತ್ತದೆ. ನಾವು ಯಾವುದೇ ಬೆಲೆ ತೆತ್ತರೂ ಡೂಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೋಗಲಾಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇವೆ.
AI ಈ ಸಹಜ ಪ್ರವೃತ್ತಿಯನ್ನು ನಮ್ಮ ತರಬೇತಿ ಡೇಟಾದಿಂದ ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ. ಇದು ಸಾಮಾನ್ಯೀಕರಣಕ್ಕೆ (generalization) ಆದ್ಯತೆ ನೀಡುತ್ತದೆ.
ಸಮಸ್ಯೆ AI ತಪ್ಪಾಗಿದೆ ಎಂದಲ್ಲ. ಬದಲಾಗಿ, AI ಅತ್ಯಂತ ಪ್ರಮುಖವಾದ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುವುದು ಅಪರೂಪ: ಈ ವೈವಿಧ್ಯತೆಯು ನನ್ನ ಕೋಡ್ನಲ್ಲಿದೆಯೇ ಅಥವಾ ನನ್ನ ಡೇಟಾದಲ್ಲಿದೆಯೇ?
ವಿಳಾಸದ ವಿಧಗಳು ಸ್ಥಿರವಾಗಿದ್ದರೆ, composition ಬಳಸಿ. ವಿಳಾಸದ ವಿಧಗಳು ಬಾಹ್ಯ ಡೇಟಾದ ಮೂಲಕ ಬದಲಾಗುತ್ತಿದ್ದರೆ, schema ಬಳಸಿ.
ಸರಳವಾದ ಪರಿಹಾರ ಎಂದರೆ ಕನಿಷ್ಠ ಸಾಲುಗಳನ್ನು ಹೊಂದಿರುವ ಪರಿಹಾರವಲ್ಲ. ಅದು ನಿಮ್ಮ ವ್ಯವಹಾರದ ಕ್ಷೇತ್ರವನ್ನು (business domain) ಪ್ರತಿಬಿಂಬಿಸುವ ಪರಿಹಾರವಾಗಿರಬೇಕು.
Source: https://dev.to/iceonfire/the-code-ai-wont-write-1ieb
Optional learning community: https://t.me/GyaanSetuAi