Laravel ನಲ್ಲಿ AI ಅನ್ನು ಸಂಯೋಜಿಸುವುದು
ಹೆಚ್ಚಿನ AI ಟ್ಯುಟೋರಿಯಲ್ಗಳು ನೀವು Python ಬಳಸುತ್ತೀರಿ ಎಂದು ಭಾವಿಸುತ್ತವೆ.
12 ವರ್ಷಗಳ ಕಾಲ PHP ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಿದ ನಂತರ, ನಾನು ಇತ್ತೀಚೆಗೆ ಒಂದು ಪ್ರೊಡಕ್ಷನ್ Laravel ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗೆ AI ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸೇರಿಸಿದ್ದೇನೆ. ಕಚ್ಚಾ ಡೇಟಾವನ್ನು (raw data) ಮಾನವನ ವರದಿಗಳಾಗಿ ಪರಿವರ್ತಿಸಲು ನಾನು ಇದನ್ನು ಬಳಸಿದೆ.
ಕಷ್ಟದ ಭಾಗ ಕೋಡ್ ಆಗಿರಲಿಲ್ಲ. ಈ ವಿಷಯದ ಬಗ್ಗೆ ಉತ್ತಮವಾದ PHP ವಿಷಯವನ್ನು (content) ಹುಡುಕುವುದು ಕಷ್ಟವಾಗಿತ್ತು.
Laravel ನಲ್ಲಿ ಸ್ವಚ್ಛವಾದ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ AI ಸಂಯೋಜನೆಯನ್ನು ನೀವು ಹೇಗೆ ನಿರ್ಮಿಸಬಹುದು ಎಂಬುದು ಇಲ್ಲಿದೆ.
ಆರ್ಕಿಟೆಕ್ಚರ್ (The Architecture)
ನಿಮ್ಮ ಕಂಟ್ರೋಲರ್ಗಳ ಒಳಗೆ API ಕರೆಗಳನ್ನು (calls) ಚದುರಿಸಬೇಡಿ. ಬದಲಾಗಿ, ಡ್ರೈವರ್ ಪ್ಯಾಟರ್ನ್ (driver pattern) ಬಳಸಿ. ಇದು ನಿಮ್ಮ .env ಫೈಲ್ನಲ್ಲಿ ಒಂದು ಬದಲಾವಣೆಯೊಂದಿಗೆ Claude ಮತ್ತು OpenAI ನಡುವೆ ಬದಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಒಂದು ಕಾಂಟ್ರಾಕ್ಟ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ
AiClientInterfaceಅನ್ನು ರಚಿಸಿ. ಇದು Claude ಮತ್ತು OpenAI ಎರಡೂ ಒಂದೇ ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.ನಿಮ್ಮ ಡ್ರೈವರ್ಗಳನ್ನು ನಿರ್ಮಿಸಿ
ClaudeClientಮತ್ತುOpenAiClientಅನ್ನು ರಚಿಸಿ. ವಿನಂತಿಗಳನ್ನು (requests) ನಿರ್ವಹಿಸಲು Laravel ನ HTTP ಕ್ಲೈಂಟ್ ಬಳಸಿ. ಇದು ಟೈಮೌಟ್ (timeouts) ಮತ್ತು ರಿಟ್ರೈ (retries) ನಿರ್ವಹಣೆಯನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ.ಸರ್ವಿಸ್ ಕಂಟೇನರ್ ಬಳಸಿ ನಿಮ್ಮ
AppServiceProviderನಲ್ಲಿ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟ ಕ್ಲೈಂಟ್ಗೆ ಬೈಂಡ್ (bind) ಮಾಡಿ. ನಿಮ್ಮ ಕಾನ್ಫಿಗರೇಶನ್ ಆಧಾರದ ಮೇಲೆ ಪ್ರೊವೈಡರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲುmatchಸ್ಟೇಟ್ಮೆಂಟ್ ಬಳಸಿ.
ವ್ಯತ್ಯಾಸಗಳು (The Differences)
ತಪ್ಪುಗಳನ್ನು ತಪ್ಪಿಸಲು ನೀವು ಈ ಐದು ವಿವರಗಳನ್ನು ತಿಳಿದಿರಬೇಕು:
• Claude ಹೆಡರ್ನಲ್ಲಿ x-api-key ಅನ್ನು ಬಳಸುತ್ತದೆ. OpenAI Authorization: Bearer ಅನ್ನು ಬಳಸುತ್ತದೆ.
• Claude ಗೆ anthropic-version ಹೆಡರ್ ಅಗತ್ಯವಿದೆ.
• Claude ಗೆ max_tokens ಅಗತ್ಯವಿದೆ. OpenAI ಇದನ್ನು ಐಚ್ಛಿಕವಾಗಿ (optional) ಮಾಡುತ್ತದೆ.
• Claude ಟಾಪ್-ಲೆವೆಲ್ system ಫೀಲ್ಡ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. OpenAI role: system ಹೊಂದಿರುವ ಸಂದೇಶವನ್ನು ಬಳಸುತ್ತದೆ.
• JSON ರೆಸ್ಪಾನ್ಸ್ ಪಥಗಳು (paths) ಭಿನ್ನವಾಗಿರುತ್ತವೆ. Claude content[0].text ಅನ್ನು ಬಳಸುತ್ತದೆ. OpenAI choices[0].message.content ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಪ್ರೊಡಕ್ಷನ್ ಟಿಪ್ಸ್ (Production Tips)
• ಕ್ಯಾಶಿಂಗ್ ಬಳಸಿ (Use Caching): AI ಕರೆಗಳು ನಿಧಾನವಾಗಿರುತ್ತವೆ ಮತ್ತು ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುತ್ತವೆ. ಡೇಟಾ ಒಂದೇ ಆಗಿದ್ದರೆ, ನಿಮ್ಮ ಕ್ಯಾಶ್ನಿಂದ ಫಲಿತಾಂಶವನ್ನು ನೀಡಿ. ಇದು ವೆಚ್ಚವನ್ನು 70% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಬಹುದು.
• ಕ್ಯೂ ಬಳಸಿ (Use Queues): API ರೆಸ್ಪಾನ್ಸ್ಗಾಗಿ ಬಳಕೆದಾರರನ್ನು ಎಂದಿಗೂ 10 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಕಾಯುವಂತೆ ಮಾಡಬೇಡಿ. ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ ಜಾಬ್ ಅನ್ನು ಡಿಸ್ಪ್ಯಾಚ್ ಮಾಡಿ ಮತ್ತು ಅದು ಸಿದ್ಧವಾದಾಗ ಅವರಿಗೆ ತಿಳಿಸಿ.
• ವೈಫಲ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಿ (Handle Failures): APIಗಳು ವಿಫಲವಾಗಬಹುದು. ನಿಮ್ಮ ಕರೆಗಳನ್ನು try-catch ಬ್ಲಾಕ್ಗಳಲ್ಲಿ ಸುತ್ತಿ (wrap). AI ವಿಫಲವಾದರೆ, ಹಾಳಾದ ಪೇಜ್ ತೋರಿಸುವ ಬದಲು ಕಚ್ಚಾ ಡೇಟಾವನ್ನು ತೋರಿಸಿ.
• ಮಿತಿಗಳನ್ನು ನಿಗದಿಪಡಿಸಿ (Set Limits): ನಿಮ್ಮ ವೆಚ್ಚವನ್ನು ನಿಯಂತ್ರಿಸಲು ಯಾವಾಗಲೂ max_tokens ಅನ್ನು ನಿಗದಿಪಡಿಸಿ. ಸಾರಾಂಶಗಳಂತಹ (summaries) ಸರಳ ಕಾರ್ಯಗಳಿಗಾಗಿ ಸಣ್ಣದಾದ, ಅಗ್ಗದ ಮಾಡೆಲ್ಗಳನ್ನು ಬಳಸಿ.
AI ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿರ್ಮಿಸಲು ನೀವು Python ಕಲಿಯಬೇಕಾಗಿಲ್ಲ. ನಿಮ್ಮ PHP ಕೌಶಲ್ಯಗಳು ಇಲ್ಲಿ ಪರಿಪೂರ್ಣವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ.
