الخطأ 503: ماذا تفعل عندما يفشل glm-5

يعني الرمز 503 أن الخدمة غير متاحة مؤقتاً، غالباً بسبب الصيانة أو الحمل الزائد. وخلافاً للرمز 429، فالمشكلة ليست في حصتك بل في سعة الخادم.

رمز 503 Service Unavailable يعني أن الخدمة لا تستطيع معالجة الطلب الآن، وعادةً ما يكون السبب التحميل الزائد أو الصيانة. التمييز عن 429 مهم: يعني 429 أن حصتك نفدت، بينما يعني 503 أن سعة الخادم غير كافية. زِد فترة التأخير بدلاً من تبديل المفتاح.

glm-5 مقدمة من Z.AI. كل ما في هذه الصفحة — الأسباب والحلول والبيانات المقاسة — مستقى من السلوك التشغيلي الفعلي لهذا النموذج على مستوى البوابة.

في هذه البوابة، السبب الأكثر شيوعًا هو: النموذج المصدر محمّل بشكل زائد. والإجراء الأول الموصى به هو: أعد المحاولة لاحقاً مع فترة انتظار أطول.

الأسباب الشائعة

  • النموذج المصدر محمّل بشكل زائد
  • الخدمة قيد الصيانة أو النشر التدريجي
  • عقدة منطقتك غير متاحة
  • ارتفاع مفاجئ في الحركة

كيفية الإصلاح

  • أعد المحاولة لاحقاً مع فترة انتظار أطول
  • انتقل إلى نموذج مكافئ أقل حملاً
  • تجنب المهام الدفعية في أوقات الذروة
  • تابع إعلاناتنا

مثال على إعادة المحاولة مع تأخير أُسّي

الكود أدناه يعيد المحاولة عندما يُرجع glm-5 الخطأ 503، حتى 5 محاولات، مع وقت انتظار متزايد وتشويش عشوائي حتى لا تُعيد الطلبات المتوازية المحاولة في اللحظة نفسها. اقرأ base URL ومفتاح API من متغيرات البيئة ولا تثبّتها داخل الكود.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'glm-5'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

بيانات أساسية لهذا النموذج

نقطة نهاية APIhttps://api.airai.cc/v1
متوافق مع OpenAIOpenAI-compatible
المزوّدZ.AI
السياق204.8K
القدراتReasoning, Tools, Open Weights
صيغ APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
صيغة الفوترةp * 1 + cr * 0.2 + cc * 0 + c * 3.2

الأسئلة الشائعة

ما الرموز التي تستحق إعادة المحاولة، وأيها لا فائدة منها؟

عادةً لا حاجة لتعديل كود العمل، يكفي ضبط وتيرة الاستدعاء. إعادة المحاولة هي الخطوة الأولى الأكثر فعالية. مع احتساب التكلفة بـ p * 1 + cr * 0.2 + cc * 0 + c * 3.2، لا تُحسب الطلبات الفاشلة ضمن الاستخدام. اجعل حد المحاولات من 3 إلى 5 وأضف تشويشاً عشوائياً. استخدم تراجعاً أُسّياً للأخطاء القابلة لإعادة المحاولة، وأرجع الخطأ فوراً للباقي.

كيف أجدول المهام المجمعة عندما يُرجع glm-5 الخطأ 503؟

خفّض التزامن أولاً — معظم مشاكل معدل النقل تختفي بعدها. نافذة السياق لهذا النموذج 204.8K وهو من Z.AI. سياق 204.8K يعني أن المدخلات الطويلة تزيد زمن أول رمز بشكل ملحوظ. ابدأ بتزامن منخفض، وراقب لدقائق، ثم زد تدريجياً.

هل يقلل الانتقال إلى نموذج أصغر من 503؟

وجود بديل على مستوى بنية النظام أوثق من إصلاح كل خطأ على حدة. لهذا النموذج من Z.AI عدة عقد upstream يمكن للبوابة التبديل بينها. جهّز نموذجاً احتياطياً أخفّ حتى لا ينقطع المسار الرئيسي.

هل تُحتسب الطلبات الفاشلة ضمن حصة تحديد المعدل؟

لا توجد رسوم، فالمخرجات التي أُنتجت فعلياً فقط هي ما يُحتسب ضمن الاستخدام. تُحاسب فقط على المخرجات التي أُنتجت بالفعل، أما الجزء الفاشل فلا. مع احتساب التكلفة بـ p * 1 + cr * 0.2 + cc * 0 + c * 3.2، لا تُحسب الطلبات الفاشلة ضمن الاستخدام. تحقق من الرصيد وحدود المعدل في لوحة التحكم أولاً، ثم افحص الكود. عند تقدير التكلفة من p * 1 + cr * 0.2 + cc * 0 + c * 3.2، أدخل ميزانية إعادة المحاولة أيضاً.

أخطاء أخرى في هذا النموذج

نماذج أخرى تواجه الخطأ نفسه

تحديث البيانات: 2026-10-10 18:30

الدعم الفنيالدعم المباشر
العودة إلى الأعلى