لماذا توقفت عن الاعتماد على مزود ذكاء اصطناعي واحد

لقد قمت ببناء روبوت دردشة (chatbot) يعمل في الوقت الفعلي لمنتدى مجتمعي. استخدمت واجهة برمجة تطبيقات OpenAI فقط. بدا الأمر بسيطاً.

بعد ثلاثة أسابيع، واجهت خطأ 5xx خلال ساعات الذروة. توقف روبوت الدردشة الخاص بي عن العمل تماماً. غضب المستخدمون. أدركت أنه لا يمكنني الوثوق بمزود واحد لتطبيقات الإنتاج (production apps).

واجهت عدة مشكلات مع المزود الواحد:

جربت مزودين آخرين، لكن جميعهم كانت لديهم تنسيقات وطرق مصادقة مختلفة. أصبح الكود الخاص بي عبارة عن فوضى من جمل switch-case.

كنت بحاجة إلى نظام من أجل:

تجنبت المكتبات الخارجية لأنها كانت جامدة للغاية. بدلاً من ذلك، قمت ببناء نظام تراجع (fallback system) مخصص باستخدام تصميم بسيط.

أولاً، أنشأت واجهة مشتركة (common interface) لجميع المزودين. يتيح ذلك لأي نموذج ذكاء اصطناعي العمل مع نفس الكود.

بعد ذلك، قمت ببناء فئة موجه (router class). تحاول هذه الفئة المزودين بالترتيب. وهي تستخدم أسلوب التراجع الأسي (exponential backoff) والتخزين المؤقت البسيط لإدارة الإخفاقات.

إليك المنطق المتبع:

أنقذ هذا النظام مشروعي خلال ثلاثة انقطاعات حدثت مؤخراً. إنه يظل شفافاً وبسيطاً.

إذا كنت تبني باستخدام الذكاء الاصطناعي، تذكر هذه النقاط:

لا تبالغ في هندسة النظام (over-engineer) إذا كان مشروعك صغيراً. ولكن إذا كانت خدمتك تعتمد على وقت التشغيل (uptime)، فقم ببناء نظام تراجع.

كيف تتعامل مع موثوقية المزود في مشاريعك؟ هل تستخدم طبقة تراجع أم تعتمد على مورد واحد؟

المصدر: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-relying-on-a-single-ai-provider-and-built-a-fallback-system-1pc0