الخلاصة أولاً: إذا كنت تستخدم نموذجاً واحداً فقط، فإن الاتصال المباشر بالجهة الرسمية هو الأسهل. لكن بمجرد أن تستخدم أعمالك أكثر من نموذجين، أو تحتاج إلى استدعاء النماذج اللغوية الكبيرة المحلية بتأخير منخفض داخل البلاد، فإن اللجوء إلى منصة تجميع واجهات برمجة تطبيقات النماذج اللغوية الكبيرة يكون عادةً أكثر جدوى. أجرينا مؤخراً جولة تقييم أفقي باستخدام حالات اختبار موحدة، حيث وضعنا GPT-4o API وClaude API وDeepSeek API وQwen API وDoubao API وERNIE API على نفس مجموعة المهام باللغة العربية، وسجلنا تأخير أول Token والوقت الإجمالي وتكلفة الاستدعاء الواحد ومعدل فشل إعادة المحاولة، وفيما يلي نوضح النتائج والمزالق التي واجهناها.
منهجية الاختبار: نفس مجموعة المهام، طريقتا دمج
تنقسم المهام إلى ثلاث فئات: تلخيص النصوص العربية الطويلة (إدخال حوالي 3000 كلمة)، توليد الأكواد (معالجة البيانات بـ Python)، والأسئلة والأجوبة على النصوص الطويلة (استفسارات متعددة الجولات). تم تكرار تشغيل كل فئة من المهام على كل نموذج عدة مرات، مع أخذ القيم النطاقية بدلاً من القيم النقطية، لتجنب تضليل النتائج بسبب التقلبات العشوائية. كانت بيئة الاختبار موحدة على نفس خادم السحابة المحلي (4 أنوية و8 جيجابايت)، ونفس شبكة الخروج، ويستخدم العميل بشكل موحد نصوص Python للاستدعاء، مع إغلاق التخزين المؤقت المحلي، وجميع الطلبات تمر عبر مسار الشبكة العامة الحقيقي. لتقليل اختلافات الفترات الزمنية، ركزنا الاختبار في نافذة مستقرة نسبياً من الساعة 2 إلى 5 مساءً في أيام العمل.
تنقسم طرق الدمج إلى مسارين. أحدهما الاتصال المباشر بمجموعات تطوير البرامج الرسمية لكل جهة، حيث لكل جهة نظام مصادقة وبروتوكول بث خاص بها. والآخر هو المرور عبر بوابة تجميع واجهات برمجة تطبيقات الذكاء الاصطناعي، وقد استخدمنا في مشروعنا منصة SiCore TokenWorks لتجميع واجهات برمجة تطبيقات النماذج اللغوية الكبيرة، حيث يمكن استدعاء هذه النماذج الرئيسية بمفتاح واحد، ومتوافقة مع OpenAI SDK، ويكفي تغيير سطر واحد من base_url للتبديل. كلا المسارين شغّلا نفس حالات الاختبار لمقارنة الاختلافات الهندسية.
على مستوى الكود تحديداً، تتطلب طريقة الاتصال المباشر الحفاظ على تغليف عميل مستقل لكل جهة: OpenAI يستخدم مكتبة openai، وClaude يستخدم مكتبة anthropic، وQwen وDoubao لكل منهما SDK خاص، ويجب تكوين حقول المصادقة ومعاملات المهلة واستراتيجيات إعادة المحاولة بشكل منفصل. بينما عند استخدام منصة التجميع، تتركز طبقة الاستدعاء بالكامل في صيغة متوافقة مع OpenAI واحدة، ويكفي تغيير حقل model لتبديل النموذج، دون تغيير كود الأعمال تقريباً. هذا الفرق لا يكون ملحوظاً مع نموذج واحد، لكن عندما تحتاج إلى مقارنة أفقية أو توجيه A/B، تتضخم فجوة الجهد الهندسي بسرعة.
مقارنة التأخير والتكلفة: القيم النطاقية أكثر دلالة
فيما يتعلق بتأخير أول Token، تتفوق النماذج المحلية عموماً. يقع تأخير أول Token لـ DeepSeek وQwen وDoubao وERNIE على مسار التجميع غالباً في نطاق يتراوح من بضع مئات من المللي ثانية إلى أكثر من ثانية، بينما يقع تأخير أول Token لـ GPT-4o وClaude بسبب طول المسار عموماً بين ثانية وأكثر من ثانيتين. يتأثر الوقت الإجمالي بشكل كبير بطول المخرجات، والفرق بين النماذج في مهام التلخيص ليس كبيراً، بينما تكون النماذج المحلية أكثر استقراراً في مهام توليد الأكواد.
فرق التكلفة أكثر إثارة للاهتمام. لنفس مجموعة المهام، تكون تكلفة الاستدعاء الواحد عبر منصة التجميع عموماً أقل من الشراء المباشر الرسمي، والسبب هو الشراء بالجملة وخفض التكاليف بالطاقة الخضراء. الأسعار الفردية المحددة تقوم كل جهة رسمية بتعديلها، ولن نكتب أرقاماً ثابتة هنا، وننصح بالاعتماد على مقارنة أسعار API الفورية. في معدل فشل إعادة المحاولة، واجهنا عند الاتصال المباشر الرسمي خطأ 429 الناتج عن تحديد المعدل، بينما تكون نسبة الفشل الإجمالية أقل في بوابة التجميع بفضل آلية توجيه النماذج وإعادة المحاولة.
لمزيد من الوضوح، قمنا بتقدير تقريبي بُعد "لكل عشرة آلاف استدعاء": في المهام ذات إدخال token العالي مثل تلخيص النصوص الطويلة، يمكن لتكلفة المسار المجمع أن توفر مقارنة بالشراء المباشر من كل جهة حوالي 20% إلى 30%؛ وفي المهام ذات المخرجات العالية مثل توليد الأكواد، يكون الفرق أصغر، لكن الميزة تكمن في توفير إدارة فواتير وشحن متعددة. بالنسبة للأعمال ذات حجم الاستدعاء المتقلب، فإن نموذج الدفع حسب الاستخدام وعدم الحاجة لشحن مسبق لدى عدة جهات يخفف أيضاً ضغط التدفق النقدي. وتجدر الإشارة إلى أن التأخير والتكلفة يتغيران حسب الفترة الزمنية والمنطقة وإصدار النموذج، وأي تقييم هو مجرد لقطة لحظية، وعند الاختيار الفعلي من الأفضل تشغيل مهامك الحقيقية مرة أخرى.
مزالق تكييف البروتوكول: البث المخرجات وأكواد الأخطاء هما الأصعب في التوحيد
أكثر ما يزعج في الاتصال المباشر ليس عدم القدرة على الاتصال، بل أن صيغة البث لكل جهة مختلفة. OpenAI تستخدم حقل data في SSE، وClaude له نوع أحداث خاص به، والنماذج المحلية لكل منها طريقة تقسيم خاصة. إذا أردت عرضاً موحداً في الواجهة الأمامية، فعليك كتابة طبقة ترجمة بروتوكول. أكواد الأخطاء أكثر فوضى، فنفس تحديد المعدل قد يعيد 429، أو يضعه في body، أو يعطيك كود خطأ تجاري ببساطة.
قيمة بوابة تجميع واجهات برمجة تطبيقات الذكاء الاصطناعي تكمن في طبقة الترجمة هذه. فهي توحد مخرجات البث لدمج النماذج المتعددة في صيغة متوافقة مع OpenAI، وتقوم بتوحيد أكواد الأخطاء، فلا يحتاج العمل في الطبقة العليا لكتابة فروع لكل جهة. هذا أيضاً أحد أسباب انتقالنا لاحقاً إلى تركيز استدعاءات النماذج المتعددة في منصة SiCore TokenWorks لتجميع واجهات برمجة تطبيقات النماذج اللغوية الكبيرة، حيث يمكن استخدام OpenAI SDK مباشرة، وتكلفة الانتقال منخفضة.
نذكر مثالاً واقعياً على المزالق: في البداية اتصلنا مباشرة بـ Claude لإجراء أسئلة وأجوبة بث مباشر، وكان منطق عرض الواجهة الأمامية مكتوباً وفق تقسيم data الخاص بـ OpenAI، لكن Claude كان يعيد بنية مزدوجة من event+data، مما جعل الواجهة الأمامية لا تستقبل المحتوى الكامل، ولم نكتشف السبب إلا بعد بحث طويل وتبين أنه عدم توافق في البروتوكول. لاحقاً انتقلنا إلى بوابة التجميع، وأصبح البث المخرجات موحداً بصيغة OpenAI، وعملت الواجهة الأمامية دون تغيير سطر واحد. الأمر نفسه ينطبق على معالجة الأخطاء، ففي مهام الاستفسارات متعددة الجولات إذا حدث تأخير عرضي لنموذج ما، يتطلب الاتصال المباشر كتابة منطق إعادة المحاولة والتخفيض لكل جهة على حدة، بينما توفر منصة التجميع توجيهاً مدمجاً للنماذج، يمكنها التبديل تلقائياً إلى نموذج بديل بعد فشل طلب واحد، دون أن يشعر جانب الأعمال تقريباً.
خطوات العملية: الانتقال من الاتصال المباشر إلى منصة التجميع
إذا كنت تفكر في الانتقال من عدة اتصالات مباشرة إلى منصة تجميع، فالأمر ينقسم تقريباً إلى أربع خطوات. أولاً، راجع قائمة النماذج الحالية وحجم الاستدعاء، وحدد أي النماذج يجب الاحتفاظ بها وأيها يمكن استبدالها. ثانياً، اطلب مفتاحاً من منصة التجميع، واستبدل base_url وapi_key في طبقة الاستدعاء الأصلية، وعدّل أسماء النماذج وفقاً لجدول التعيين في المنصة. ثالثاً، استخدم مجموعة من الطلبات الحقيقية السابقة لإجراء اختبار انحدار، مع التركيز على مقارنة جودة المخرجات والتأخير ومعدل الفشل للتأكد من كونها في النطاق المقبول. رابعاً، التبديل التدريجي للحركة، ابدأ بالأعمال غير الأساسية، وبعد الاستقرار انتقل إلى الكامل. تستغرق العملية عادةً من نصف يوم إلى يوم واحد، ويُستهلك معظم الوقت في التحقق من الانحدار.
توصيات الاختيار: انظر إلى مزيج نماذجك ومتطلبات الامتثال
إذا كنت تستخدم نموذجاً واحداً وبحجم صغير، فلا مشكلة في الاتصال المباشر الرسمي. إذا كان مزيج النماذج يضم أكثر من جهتين، أو كنت بحاجة إلى استخدام DeepSeek-V3 وQwen-Max وDoubao وERNIE معاً، فإن منصة التجميع توفر جهداً بشرياً أكبر. إذا كان الأمر يتعلق بالامتثال في مجال الابتكار المعلوماتي، فإن المسار الذي يعطي الأولوية للنماذج اللغوية الكبيرة المحلية يكون أكثر ملاءمة. بالمناسبة، طريقة الدفع حسب الاستخدام مثل token8341 مناسبة للأعمال المتقلبة. قبل الاختيار، ننصح بتشغيل حالات اختبار موحدة بنفسك، ولا تنظر فقط إلى مقارنات النماذج في الصفحات الترويجية.
بالإضافة إلى ذلك، يجب الانتباه إلى تفصيلتينيُغفَل عنه بسهولة: أولاً، الامتثال للبيانات، هل تدعم منصة التجميع عدم الاحتفاظ بالبيانات، وهل حصلت على الشهادات ذات الصلة، وهذا يتعلق مباشرة بإمكانية استخدامها في الأعمال التي تتضمن معلومات حساسة؛ ثانياً، استقرار SLA، فرغم أن توجيه النماذج المتعددة يقلل معدل الفشل، إلا أن توافر المنصة نفسها يجب النظر إليه أيضاً، وننصح باختيار خدمة لديها التزام واضح بـ SLA ولوحة مراقبة.
باختصار: جوهر دمج النماذج المتعددة ليس كثرة النماذج، بل توحيد البروتوكول والتحكم في التكلفة. عند النظر الموسع إلى مقارنة أسعار النماذج اللغوية الكبيرة واختيار نماذج الذكاء الاصطناعي، فكر أولاً بوضوح في توزيع مهامك، ثم قرر الاتصال المباشر أم التجميع.