إدارة القنوات في بوابة الذكاء الاصطناعي
«القناة (Channel)» في بوابة الذكاء الاصطناعي هي إعداد نقطة اتصال لمزود معيّن — فهي تحفظ عنوان المزود، ومفتاح API الحقيقي، والنماذج المتاحة، ومعلومات التسعير والحصة. وبناءً على هذه القنوات، توجّه البوابة الطلبات القادمة من التطبيقات إلى المزود المقابل. تشرح هذه المقالة كيفية إضافة القنوات وتكوينها واختبارها وإدارتها.
المتطلبات المسبقة
- تم تثبيت ServBay وتشغيله، وتم تسجيل الدخول إلى حساب ServBay (يلزم تسجيل الدخول قبل إضافة قناة).
- تم تجهيز مفتاح API الحقيقي للمزود المستهدف (المزودون المحليون مثل Ollama / LM Studio يمكن ترك الحقل فارغًا).
- إذا لم تكن على دراية بالبنية الكاملة لبوابة الذكاء الاصطناعي، يُنصح بقراءة مقدمة بوابة الذكاء الاصطناعي.
إضافة قناة
انتقل إلى بوابة الذكاء الاصطناعي ← القنوات (Channels)، وانقر على إضافة (Add) لفتح المعالج. ينقسم المعالج إلى ثلاث خطوات.
الخطوة الأولى: اختيار المزود
يُعرض المزودون مجمّعين حسب الفئة، ويمكنك اختيار أحدهم بالنقر على البطاقة:
- الرئيسية (Mainstream): OpenAI، Anthropic، Google Gemini، Azure OpenAI، AWS Bedrock، OpenRouter.
- الصين (China): DeepSeek، Qwen، Zhipu GLM، Kimi، Doubao·Volcano، ERNIE Bot، Hunyuan، MiniMax، 01.AI، StepFun.
- المحلية (Local): Ollama، LM Studio.
- مخصصة (Custom): OpenAI Compatible، Custom.
بعد اختيار المزود، تمتلئ البوابة تلقائيًا بعنوان Base URL الافتراضي لذلك المزود.
التبديل بين المنطقتين
يوفر المزودون الصينيون مثل Qwen وZhipu GLM وKimi وDoubao·Volcano وHunyuan وMiniMax وStepFun مجموعتين من نقاط النهاية: المحلية والعالمية. عند اختيار مزود من هذا النوع، يظهر في المعالج محدد «المنطقة» (🇨🇳 المحلي / 🌐 العالمي)، وبعد التبديل يتم تحديث Base URL تلقائيًا إلى عنوان المنطقة المقابلة.
الخطوة الثانية: تعبئة الإعدادات
- اسم القناة (مطلوب) — يُستخدم لتمييز القناة في القائمة، ويمكن تخصيصه.
- Base URL (مطلوب) — عنوان API الخاص بالمزود. معظم المزودين يملؤونه تلقائيًا؛ أما Azure OpenAI وCustom فيتطلبان إدخاله يدويًا.
- API Key (اختياري) — المفتاح الحقيقي للمزود. إذا تُرك فارغًا، يمكن فقط اختبار إمكانية الوصول إلى نقطة النهاية، دون التحقق من صلاحية المفتاح؛ وعادة لا تحتاج المزودات المحلية (Ollama / LM Studio) إلى إدخاله.
- النماذج — هناك طريقتان، اختر إحداهما:
- الاكتشاف التلقائي: بعد النقر على اكتشاف، تستدعي البوابة واجهة قائمة النماذج لدى المزود لجلب النماذج المتاحة، ثم تختار منها اختيارًا متعددًا على شكل شرائح (chip).
- الإدخال اليدوي: أدخل اسم النموذج مباشرة. أما قنوات Azure فيجب إدخال اسم النشر (Deployment name) فيها بدلًا من اسم النموذج.
- الأولوية / الوزن — عندما يمكن لأكثر من قناة خدمة النموذج نفسه، تعتمد البوابة على ذلك لتحديد التوجيه وتوزيع الحمل.
ملاحظة حول Azure OpenAI
يجب أن يحتوي حقل «النموذج» في قناة Azure على اسم النشر (Deployment name) الذي أنشأته في بوابة Azure، وليس اسم النموذج الأساسي. كما يجب إدخال نقطة نهاية مورد Azure في Base URL.
الخطوة الثالثة: التأكيد والإرسال
راجع ملخص الإعدادات ثم أرسله. بعد نجاح الإرسال، ستظهر القناة الجديدة في قائمة القنوات مع عرض حالتها الصحية في الوقت الفعلي.
اكتشاف القدرات واستراتيجية التوجيه
بعد إضافة القناة، تجري البوابة اكتشاف القدرات (capability probing) لهذه القناة — وهي آلية التوجيه الذكي الأساسية في بوابة الذكاء الاصطناعي. تحدد نتائج الاكتشاف ما إذا كان بإمكان أدوات مثل Claude Code الاستخدام المباشر، أم أنها تحتاج إلى تعيين نموذج، وكيفية اختيار النموذج الهدف.
المؤشران الرئيسيان للاكتشاف
تكتشف البوابة حقيقتين أساسيتين لكل قناة (كلتاهما ثلاثية الحالات: true / false / غير معروف):
| بند الاكتشاف | المعنى | true | false | غير معروف |
|---|---|---|---|---|
التعرف على أسماء نماذج Claude (accepts_claude_names) | هل تتعرف القناة أصليًا على أسماء النماذج claude-opus-* / claude-sonnet-* / claude-haiku-* | اتصال مباشر دون تعيين | لا تتعرف، ويجب إنشاء تعيين لترجمة أسماء claude-* إلى أسماء النماذج الحقيقية لدى المزود | لم يتم تشغيل الاكتشاف أو فشل، ولا يمكن الجزم |
التمييز حسب الفئة (tier_aware) | هل يعيد المزود نماذج مختلفة حسب فئة opus / sonnet / haiku | المزود يميّز بالفعل، اتركه يتولى الأمر | لا يميّز (يعيد النموذج نفسه لكل الفئات)، ويلزم إنشاء تعيين في البوابة | لا يمكن اكتشافه أو لم يُكتشف |
لماذا الاكتشاف بدل التخمين
تختلف سلوكيات المزودين اختلافًا كبيرًا. فOpenAI لا يتعرف أصليًا على أسماء claude-*؛ وبعض مزودي التمرير يتعرفون عليها عبر إعادة التوجيه؛ أما مزودو باقات البرمجة (مثل اشتراك Claude Pro/Max) فقد يتعرفون فقط على أسماء نماذج محددة مرتبطة بالاشتراك. لا تعتمد البوابة على نوع القناة للتخمين، بل تكتشف فعليًا ثم تقرر استراتيجية التوجيه.
حكم التوجيه: خمس حالات
عندما تنفذ «الاعتماد بنقرة واحدة» لـ Claude Code في بوابة الذكاء الاصطناعي ← إدارة الوصول ← صفحة العميل، تجمع البوابة نتائج اكتشاف كل القنوات المرشحة لتخرج بـحكم توجيه:
| حالة القنوات المرشحة | الحكم | المعنى |
|---|---|---|
| لا توجد قنوات مرشحة متاحة (لا توجد قناة / كلها غير سليمة / لا توجد قناة ضمن نطاق المفتاح الافتراضي) | لا توجد قنوات مرشحة | عليك إضافة قنوات أو إصلاحها أولًا |
| أي قناة مرشحة قيمتها غير معروفة | غير مكتشف | يجب تشغيل الاكتشاف أولًا، ولا يمكن إنشاء تعيين دون تحقق مسبق |
| كل القنوات المرشحة تتعرف على أسماء claude | اتصال مباشر | لا تعيين، وتُمرر الطلبات كما هي |
| كل القنوات المرشحة لا تتعرف على أسماء claude | يجب التعيين | تنشئ البوابة تعيينًا ثلاثي الفئات، وتترجم claude-* إلى أسماء النماذج الحقيقية لدى المزود |
| بعضها تتعرف وبعضها لا | مختلط | يحتاج قرارًا يدويًا (المتعرف يمر مباشرة، وغير المتعرف يمر عبر التعيين) |
تعيين النماذج: ترجمة claude-* إلى النموذج الحقيقي لدى المزود
عندما يكون الحكم «يجب التعيين»، تنشئ البوابة لـ Claude Code ثلاث قواعد لتعيين النماذج، تغطي كل فئة على حدة:
| اسم النموذج المرسل من Claude Code | قاعدة التعيين (حرف بدل) | يُعيَّن إلى |
|---|---|---|
claude-opus-* | يطابق كل طلبات فئة opus | النموذج الرائد بين القنوات المرشحة |
claude-sonnet-* | يطابق كل طلبات فئة sonnet | النموذج الرائد أو النموذج القياسي بين القنوات المرشحة |
claude-haiku-* | يطابق كل طلبات فئة haiku | النموذج الخفيف بين القنوات المرشحة |
قواعد اختيار النموذج الهدف (بالرجوع حسب الأولوية):
- إعداد مسبق للعائلة: إذا ظهرت كلمة مفتاحية معروفة لعائلة ما في النماذج المرشحة (مثل
glm)، يُؤخذ الطراز الرائد لتلك العائلة (مثلglm-5.2) هدفًا لفئتي opus/sonnet، ويُؤخذ الطراز الخفيف لتلك العائلة (مثلglm-4.7-flash) هدفًا لفئة haiku. - مطابقة الكلمات المفتاحية: في غياب إعداد مسبق للعائلة، تُؤخذ أول قناة في قائمة المرشحين لفئتي opus/sonnet؛ وتُؤخذ أول قناة تطابق كلمات مفتاحية خفيفة (
flash/mini/lite/air/small/turbo/haiku) لفئة haiku. - الاحتياطي: إذا لم يتم الوصول إلى نتيجة، تُؤخذ أول قناة في قائمة المرشحين للفئات الثلاث.
الخطأ في فئة haiku هو الأعلى تكلفة
حجم استدعاءات فئة haiku في Claude Code هو الأكبر (كل استدعاء خفيف في المحادثة يستخدمها). إذا أُدرج النموذج الرائد في فئة haiku بالخطأ، فقد تتضاعف الفاتورة عدة مرات. يغطي جدول مطابقة الكلمات المفتاحية في البوابة 7 لواحق خفيفة (flash / mini / lite / air / small / turbo / haiku)، ما يضمن عدم إدراج نموذج ثقيل في فئة haiku.
آلية كتابة التعيينات
بعد تأكيد الاعتماد، تكتب البوابة سجلات التعيين عبر واجهة /admin/model-mappings API. ويتضمن كل سجل تعيين:
- بروتوكول المصدر (
source_protocol):anthropic(الطلبات المرسلة من Claude Code تكون بترميز Anthropic) - مطابقة النموذج المصدر (
source_model_pattern): حرف بدل، مثلclaude-opus-* - بروتوكول الهدف (
target_protocol):openai(تُحوَّل جميعها إلى ترميز OpenAI لتُرسل إلى المزود) - النموذج الهدف (
target_model): اسم النموذج المحدد الذي اختاره الاكتشاف
الكتابة idempotent — أي إعادة الاعتماد لا تُنشئ تعيينات مكررة؛ وقبل الكتابة تُجلب قائمة التعيينات الحالية للمقارنة.
قواعد التوجيه وقت التشغيل: التجاوز عند الفشل والتخفيض
إلى جانب التعيينات الثابتة التي تُكتب في مرحلة الاعتماد، تدعم البوابة أيضًا قواعد توجيه وقت التشغيل (routing rules)، لاتخاذ قرارات ديناميكية أثناء مرور الطلب عبر البوابة:
| حقل القاعدة | الوظيفة |
|---|---|
شرط التشغيل (condition_type) | متى يتم تفعيل التخفيض، مثل نفاد حصة القناة (quota_exhausted) |
عتبة التكلفة (cost_threshold_usd) | اختياري: يُفعَّل عندما تتجاوز التكلفة التراكمية للقناة العتبة |
الإجراء (action_type) | ما يحدث بعد التفعيل، مثل التبديل إلى قناة احتياطية محددة (switch_to) |
القناة الهدف (target_channel_id) | القناة الاحتياطية التي يتم التخفيض إليها |
النموذج الهدف (target_model) | اختياري: تبديل النموذج أيضًا عند التخفيض إلى القناة الاحتياطية |
من خلال دمج عدة قواعد توجيه، يمكنك تحقيق ما يلي: عند نفاد حصة اشتراك القناة A، يتم التبديل تلقائيًا إلى نقطة نهاية الدفع حسب الاستخدام للقناة B؛ وعند تجاوز التكلفة اليومية لقناة ما الحد المحدد، يتم التخفيض إلى نموذج أرخص.
موازنة الحمل والأولوية
عندما يمكن لعدة قنوات سليمة خدمة النموذج نفسه، تختار البوابة وفق الاستراتيجيات التالية:
- وضع الأولوية (الافتراضي): تُؤخذ فقط القناة ذات الأولوية الأعلى؛ وفيما بين القنوات ذات الأولوية نفسها توزع البوابة حسب الوزن الداخلي.
- وضع التناوب (
round_robin): توزيع الطلبات بالتناوب بين جميع القنوات المرشحة السليمة.
تُضبط الأولوية في إعدادات القناة (كلما زاد الرقم ارتفعت الأولوية)، ويحدد allowed_channels في المفتاح الافتراضي نطاق القنوات المتاحة.
اختبار الاتصال
في قائمة القنوات يمكن تنفيذ اختبار اتصال لقناة واحدة. ينقسم الاختبار إلى بعدين:
- وصول نقطة النهاية (reachable) — التحقق من إمكانية الوصول إلى Base URL (هل الشبكة والعنوان صحيحان).
- صلاحية المفتاح (authenticated) — استدعاء واجهة المزود فعليًا للتحقق من صلاحية API Key. لا يتم التحقق إلا عند إدخال API Key.
تُعرض نتيجة الاختبار: زمن الاستجابة ذهابًا وإيابًا (بالمللي ثانية)، وشارة الحالة، ورسالة الخطأ.
TIP
في معالج الإضافة، إذا تعذّر الوصول إلى نقطة النهاية فسيُمنع الانتقال إلى الخطوة التالية؛ وإذا كان الوصول ممكنًا لكن المفتاح غير صالح، فسيظهر تحذير فقط ويمكنك المتابعة (مثلًا إذا كنت تخطط لإضافة المفتاح لاحقًا).
الإعدادات المتقدمة
عند إضافة قناة أو تعديلها يمكن توسيع الإعدادات المتقدمة، وتُستخدم في حساب التكلفة والتحكم في الحصة:
- مضاعف السعر (Rate Multiplier) — ضرب سعر المزود الرسمي في مضاعف، لتسهيل الحساب وفق تكلفتك الحقيقية أو سعر إعادة البيع، والقيمة الافتراضية
1.0. - هيكل الفوترة — يوضح طريقة فوترة القناة، مثل الدفع حسب الاستخدام (pay as you go)، أو الاشتراك (subscription)، أو الحزمة (package).
- الرصيد — يمكن أن يكون مصدر الرصيد قيمة ثابتة، أو فاتورة OSS، أو صيانة يدوية؛ وعند اختيار فاتورة OSS يمكن أيضًا تحديد نوع الفاتورة. ويُعرض الرصيد ووقت التحديث للقراءة فقط في تفاصيل القناة.
- تاريخ انتهاء الاشتراك — يمكن لقنوات الاشتراك / الحزم تسجيل تاريخ الانتهاء.
- حدود الحصة — يمكن تحديد سقف حسب عدد الرموز (Tokens) أو عدد الطلبات أو المبلغ، مع اختيار الدورة (يومي / أسبوعي / شهري / مخصص). بعد نفاد الحصة، تُستبعد القناة تلقائيًا من التوجيه، وهي صمام أمان لمنع تجاوز الميزانية غير المتوقع.
تعديل القنوات وحذفها
- تعديل — افتح إحدى القنوات في قائمة القنوات لتعديل الاسم، أو Base URL، أو API Key، أو النماذج، أو الإعدادات المتقدمة.
- حذف — بعد حذف القناة، لن تستطيع المفاتيح الافتراضية المعتمدة عليها التوجيه إليها، لذا تعامل مع الأمر بحذر.
الحالة الصحية
تعرض قائمة القنوات وصفحة النظرة العامة الحالة الصحية لكل قناة في الوقت الفعلي (سليمة / متدهورة / غير متاحة)، مما يساعدك على اكتشاف إعدادات المزودين المعطلة بسرعة.
الأسئلة الشائعة (FAQ)
- س: تظهر رسالة تفيد بضرورة تسجيل الدخول عند إضافة قناة؟
- ج: بوابة الذكاء الاصطناعي ميزة إضافية مدفوعة في ServBay، ويلزم تسجيل الدخول إلى حساب ServBay قبل إضافة قناة / مفتاح، فاتبع إرشادات الواجهة لتسجيل الدخول.
- س: تظهر رسالة بأن عدد القنوات بلغ الحد الأقصى؟
- ج: يرتبط عدد القنوات التي يمكن إنشاؤها بخطة الحساب، وعند بلوغ الحد يمكنك حذف القنوات غير المستخدمة أو ترقية الخطة.
- س: الاكتشاف التلقائي للنماذج لا يجلب القائمة؟
- ج: تأكد أولًا من صحة Base URL وصلاحية API Key (يمكن استخدام «صلاحية المفتاح» في اختبار الاتصال للتحقق)، إذ يحتاج بعض المزودين إلى مفتاح صالح لإرجاع قائمة النماذج؛ ويمكنك أيضًا إدخال اسم النموذج يدويًا.
- س: هل أحتاج إلى إدخال مفتاح للاتصال بـ Ollama / LM Studio المحلي؟
- ج: عادة لا. تأكد فقط من تشغيل الخدمة المحلية المقابلة واستماعها إلى المنفذ الافتراضي (Ollama
11434، LM Studio1234).
- ج: عادة لا. تأكد فقط من تشغيل الخدمة المحلية المقابلة واستماعها إلى المنفذ الافتراضي (Ollama
الخلاصة
القنوات هي أساس توجيه الطلبات في بوابة الذكاء الاصطناعي. من خلال معالج من ثلاث خطوات، يمكنك ربط قرابة 20 مزودًا بسرعة، مع التبديل بين المنطقتين، والاكتشاف التلقائي للنماذج، واختبار الاتصال ثنائي الأبعاد لضمان صحة الإعدادات، ثم إدارة التكاليف بدقة عبر الإعدادات المتقدمة مثل التسعير والحصص. بعد إعداد القنوات، يمكنك إنشاء المفاتيح الافتراضية لتستخدمها التطبيقات والأدوات.
