توقف عن كتابة استدعاءات AI API بشكل ثابت (Hardcoding)
لقد توقفت عن كتابة استدعاءات AI API بشكل ثابت (Hardcoding). فهذا الأمر يخلق كابوساً عند الصيانة.
بدأت مع OpenAI. ثم طلب أحد العملاء Claude. كان لدي دالة واحدة لـ OpenAI. وإضافة مزود آخر كانت تعني نسخ الكود.
جربت استخدام متغيرات البيئة (environment variables). أصبح الكود عبارة عن فوضى من جمل if-else. كنت بحاجة إلى واجهة مشتركة (common interface).
قمت ببناء طبقة تجريد (abstraction layer). واستخدمت نمط الاستراتيجية (Strategy pattern).
تعمل هذه الطريقة كالتالي:
- إنشاء فئة أساسية (base class) للمزودين.
- كتابة فئة محددة لكل API.
- جعل التطبيق يستدعي الفئة الأساسية.
تطبيقك لن يهتم بأي محرك خلفي (backend) يتم تشغيله.
الفوائد:
- إضافة مزودين جدد بسهولة.
- الاختبار باستخدام مزودين وهميين (mock providers).
العيوب:
- تعتبر مبالغاً فيها (overkill) لمزود واحد فقط.
- ستفقد الميزات الفريدة لكل API.
- يتطلب ربط الأخطاء (error mapping) مجهوداً.
نصيحتي: ابدأ بمزود واحد ملموس (concrete provider). أعد هيكلة الكود (Refactor) عندما تضيف مزوداً ثانياً.
هذا أنقذني من إعادة كتابة الكود بالكامل.
كيف تتعامل أنت مع تعدد مزودي الذكاء الاصطناعي؟
المصدر: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-hardcoding-ai-api-calls-and-built-a-simple-abstraction-layer-27me مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi