اپنی AI API کالز کو ہارڈ کوڈ کرنا بند کریں
میں نے AI API کالز کو ہارڈ کوڈ کرنا بند کر دیا ہے۔ یہ دیکھ بھال (maintenance) کا ایک ڈراؤنا خواب بن جاتا ہے۔
میں نے OpenAI سے آغاز کیا۔ پھر ایک کلائنٹ کو Claude چاہیے تھا۔ میرے پاس OpenAI کے لیے ایک فنکشن تھا۔ ایک اور provider شامل کرنے کا مطلب کوڈ کی کاپی کرنا تھا۔
میں نے environment variables آزمائے۔ کوڈ if-else بلاکس کا ایک الجھا ہوا مجموعہ بن گیا۔ مجھے ایک مشترکہ interface کی ضرورت تھی۔
میں نے ایک abstraction layer بنائی۔ میں نے Strategy pattern کا استعمال کیا۔
یہ اس طرح کام کرتا ہے:
- providers کے لیے ایک base class بنائیں۔
- ہر API کے لیے ایک مخصوص class لکھیں۔
- ایپ کو base class کال کرنے دیں۔
آپ کی ایپ اس بات کو نظر انداز کر دیتی ہے کہ کون سا backend چل رہا ہے۔
فوائد:
- نئے providers کو آسانی سے شامل کریں۔
- mock providers کے ساتھ ٹیسٹ کریں۔
نقصانات:
- اگر صرف ایک provider ہو تو یہ overkill ہے۔
- آپ API کے منفرد فیچرز کھو دیتے ہیں۔
- Error mapping میں محنت درکار ہوتی ہے۔
میرا مشورہ: ایک concrete provider سے شروع کریں۔ جب آپ دوسرا شامل کریں تو refactor کریں۔
اس نے مجھے مکمل rewrite سے بچا لیا۔
آپ متعدد AI providers کو کیسے سنبھالتے ہیں؟
Source: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-hardcoding-ai-api-calls-and-built-a-simple-abstraction-layer-27me Optional learning community: https://t.me/GyaanSetuAi