Laravel میں AI کو شامل کرنا
زیادہ تر AI ٹیوٹوریلز یہ فرض کرتے ہیں کہ آپ Python استعمال کر رہے ہیں۔
PHP ایپس بنانے کے 12 سال کے تجربے کے بعد، میں نے حال ہی میں ایک پروڈکشن Laravel ڈیش بورڈ میں AI فیچرز شامل کیے ہیں۔ میں نے اسے خام ڈیٹا (raw data) کو انسانی رپورٹوں میں تبدیل کرنے کے لیے استعمال کیا۔
مشکل حصہ کوڈ نہیں تھا۔ مشکل حصہ اس موضوع پر اچھا PHP مواد تلاش کرنا تھا۔
یہاں بتایا گیا ہے کہ آپ Laravel میں ایک صاف ستھرا اور پروڈکشن کے لیے تیار AI انٹیگریشن کیسے بنا سکتے ہیں۔
آرکیٹیکچر (The Architecture)
اپنے controllers کے اندر API کالز کو بکھیریں نہیں۔ اس کے بجائے، ایک driver pattern استعمال کریں۔ یہ آپ کو اپنی .env فائل میں ایک تبدیلی کے ذریعے Claude اور OpenAI کے درمیان سوئچ کرنے کی اجازت دیتا ہے۔
ایک contract ڈیفائن کریں ایک
AiClientInterfaceبنائیں۔ یہ اس بات کو یقینی بناتا ہے کہ Claude اور OpenAI دونوں ایک ہی اصولوں پر عمل کریں۔اپنے drivers بنائیں ایک
ClaudeClientاور ایکOpenAiClientبنائیں۔ درخواستوں کو سنبھالنے کے لیے Laravel کے HTTP client کا استعمال کریں۔ یہ timeouts اور retries کو سنبھالنا آسان بنا دیتا ہے۔Service Container کا استعمال کریں اپنے
AppServiceProviderمیں اپنے interface کو ایک مخصوص client کے ساتھ bind کریں۔ اپنی config کی بنیاد پر provider کا انتخاب کرنے کے لیےmatchstatement کا استعمال کریں۔
فرق (The Differences)
غلطیوں سے بچنے کے لیے آپ کو ان پانچ تفصیلات کا علم ہونا چاہیے:
• Claude ہیڈر میں x-api-key استعمال کرتا ہے۔ OpenAI Authorization: Bearer استعمال کرتا ہے۔
• Claude کے لیے anthropic-version ہیڈر ضروری ہے۔
• Claude کے لیے max_tokens ضروری ہے۔ OpenAI اسے اختیاری (optional) رکھتا ہے۔
• Claude ایک top-level system فیلڈ استعمال کرتا ہے۔ OpenAI role: system کے ساتھ ایک message استعمال کرتا ہے۔
• JSON response کے راستے (paths) مختلف ہوتے ہیں۔ Claude content[0].text استعمال کرتا ہے۔ OpenAI choices[0].message.content استعمال کرتا ہے۔
پروڈکشن ٹپس (Production Tips)
• Caching کا استعمال کریں: AI کالز سست ہوتی ہیں اور ان پر خرچہ ہوتا ہے۔ اگر ڈیٹا وہی ہے، تو نتیجہ اپنے cache سے فراہم کریں۔ اس سے اخراجات میں 70% تک کمی آ سکتی ہے۔
• Queues کا استعمال کریں: صارف کو API رسپانس کے لیے کبھی بھی 10 سیکنڈ انتظار نہ کروائیں۔ ایک background job ڈسپچ کریں اور جب یہ تیار ہو جائے تو انہیں مطلع کریں۔
• ناکامیوں کو سنبھالیں (Handle Failures): APIs ناکام ہو سکتی ہیں۔ اپنی کالز کو try-catch بلاکس میں لپیٹیں۔ اگر AI ناکام ہو جائے تو ٹوٹے ہوئے صفحے کے بجائے خام ڈیٹا (raw data) دکھائیں۔
• حدود مقرر کریں: اپنے اخراجات کو کنٹرول کرنے کے لیے ہمیشہ max_tokens سیٹ کریں۔ خلاصہ (summaries) جیسے سادہ کاموں کے لیے چھوٹے اور سستے ماڈلز استعمال کریں۔
AI فیچرز بنانے کے لیے آپ کو Python سیکھنے کی ضرورت نہیں ہے۔ آپ کی PHP مہارتیں یہاں مکمل طور پر کام آتی ہیں۔
