𝗪𝗵𝘆 𝗜 𝗦𝘁𝗼𝗽𝗽𝗲𝗱 𝗥𝗲𝗹𝘆𝗶𝗻𝗴 𝗼𝗻 𝗮 𝗦𝗶𝗻𝗴𝗹𝗲 𝗔𝗜 𝗣𝗿𝗼𝘃𝗶𝗱𝗲𝗿

ನಾನು ಒಂದು ಸಮುದಾಯದ ಫೋರಂಗಾಗಿ (community forum) ರಿಯಲ್-ಟೈಮ್ ಚಾಟ್‌ಬಾಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ನಾನು ಕೇವಲ OpenAI API ಅನ್ನು ಬಳಸಿದ್ದೆ. ಅದು ಸರಳವಾಗಿ ಕಂಡಿತು.

ಮೂರು ವಾರಗಳ ನಂತರ, ಪೀಕ್ ಅವರ್ಸ್ (peak hours) ಸಮಯದಲ್ಲಿ ನಾನು 5xx ಎದ್ದರ್ ಎದುರಿಸಿದೆ. ನನ್ನ ಚಾಟ್‌ಬಾಟ್ ಸ್ಥಗಿತಗೊಂಡಿತು. ಬಳಕೆದಾರರು ಕೋಪಗೊಂಡರು. ಪ್ರೊಡಕ್ಷನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ನಾನು ಕೇವಲ ಒಬ್ಬ ಪೂರೈಕೆದಾರರನ್ನು ನಂಬಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ನನಗೆ ಅರಿವಾಯಿತು.

ಏಕೈಕ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ನಾನು ಹಲವಾರು ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಿದೆ:

ನಾನು ಇತರ ಪೂರೈಕೆದಾರರನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ, ಆದರೆ ಅವೆಲ್ಲವೂ ವಿಭಿನ್ನ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಮತ್ತು ಅಥೆಂಟಿಕೇಶನ್ (authentication) ವಿಧಾನಗಳನ್ನು ಹೊಂದಿದ್ದವು. ನನ್ನ ಕೋಡ್ switch-case ಸ್ಟೇಟ್‌ಮೆಂಟ್‌ಗಳ ಗೊಂದಲವಾಯಿತು.

ನನಗೆ ಈ ಕೆಳಗಿನವುಗಳಿಗಾಗಿ ಒಂದು ವ್ಯವಸ್ಥೆಯ ಅಗತ್ಯವಿತ್ತು:

ಥರ್ಡ್-ಪಾರ್ಟಿ ಲೈಬ್ರರಿಗಳು ತುಂಬಾ ಬಿಗಿಯಾಗಿದ್ದವು (rigid), ಆದ್ದರಿಂದ ನಾನು ಅವುಗಳನ್ನು ಬಳಸಲಿಲ್ಲ. ಬದಲಾಗಿ, ನಾನು ಸರಳ ವಿನ್ಯಾಸವನ್ನು ಬಳಸಿ ಒಂದು ಕಸ್ಟಮ್ ಫಾಲ್‌ಬ್ಯಾಕ್ (fallback) ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸಿದೆ.

ಮೊದಲಿಗೆ, ನಾನು ಎಲ್ಲಾ ಪೂರೈಕೆದಾರರಿಗಾಗಿ ಒಂದು ಸಾಮಾನ್ಯ ಇಂಟರ್ಫೇಸ್ (interface) ಅನ್ನು ರಚಿಸಿದೆ. ಇದು ಯಾವುದೇ AI ಮಾಡೆಲ್ ಒಂದೇ ಕೋಡ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನಂತರ, ನಾನು ಒಂದು router class ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ಈ ಕ್ಲಾಸ್ ಪೂರೈಕೆದಾರರನ್ನು ಕ್ರಮಾನುಗತವಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಇದು ವೈಫಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು exponential backoff ಮತ್ತು ಸರಳ ಕ್ಯಾಶಿಂಗ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.

ಅದರ ತರ್ಕ (logic) ಇಲ್ಲಿದೆ:

ಇತ್ತೀಚಿನ ಮೂರು ಸ್ಥಗಿತದ ಸಮಯದಲ್ಲಿ ಈ ವ್ಯವಸ್ಥೆಯು ನನ್ನ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಉಳಿಸಿತು. ಇದು ಪಾರದರ್ಶಕ ಮತ್ತು ಸರಳವಾಗಿದೆ.

ನೀವು AI ನೊಂದಿಗೆ ಏನನ್ನಾದರೂ ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ, ಈ ಅಂಶಗಳನ್ನು ನೆನಪಿಡಿ:

ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಚಿಕ್ಕದಾಗಿದ್ದರೆ ಅತಿಯಾದ ಎಂಜಿನಿಯರಿಂಗ್ (over-engineer) ಮಾಡಬೇಡಿ. ಆದರೆ ನಿಮ್ಮ ಸೇವೆ ಅಪ್‌ಟೈಮ್ (uptime) ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ, ಒಂದು ಫಾಲ್‌ಬ್ಯಾಕ್ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸಿ.

ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ಪೂರೈಕೆದಾರರ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ನೀವು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ? ನೀವು ಫಾಲ್‌ಬ್ಯಾಕ್ ಲೇಯರ್ ಅನ್ನು ಬಳಸುತ್ತೀರಾ ಅಥವಾ ಒಬ್ಬನೇ ವೆಂಡರ್ ಮೇಲೆ ಅವಲಂಬಿತರಾಗುತ್ತೀರಾ?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-relying-on-a-single-ai-provider-and-built-a-fallback-system-1pc0