الخطأ 504: ماذا تفعل عندما يفشل gemini-3.1-pro-preview-customtools

يعني الرمز 504 أن البوابة انتهت مدة انتظارها للنموذج المصدر: أُرسل الطلب، لكن المصدر لم يستجب خلال المهلة التي تسمح بها البوابة.

رمز 504 Gateway Timeout يعني أن البوابة توقفت عن انتظار استجابة المورّد. تم تحويل الطلب، لكن لم تعد أي نتيجة خلال المهلة المحددة. تقصير المخرجات، أو تفعيل البث المباشر، أو تقليل max_tokens يحل المشكلة عادةً.

gemini-3.1-pro-preview-customtools مقدمة من Google. كل ما في هذه الصفحة — الأسباب والحلول والبيانات المقاسة — مستقى من السلوك التشغيلي الفعلي لهذا النموذج على مستوى البوابة.

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

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

  • استغرق المصدر وقتاً أطول من مهلة البوابة
  • سياق طويل رفع زمن الاستدلال
  • عقدة المصدر متوقفة
  • طلب بدون بث بمخرجات طويلة جداً

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

  • انتقل إلى الإخراج بالبث
  • قصّر السياق وقلّل max_tokens
  • أعد المحاولة بعد انتظار قصير
  • استخدم نموذجاً أسرع في الاستدلال

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

الكود أدناه يعيد المحاولة عندما يُرجع gemini-3.1-pro-preview-customtools الخطأ 504، حتى 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 = 'gemini-3.1-pro-preview-customtools'


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
المزوّدGoogle
السياق1M
القدراتReasoning, Tools, Files, Vision, Audio
صيغ APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
صيغة الفوترةp * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18

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

هل أحتاج لترقية الخطة لحل 504 على gemini-3.1-pro-preview-customtools؟

الأمر يتعلق أساساً بالحصة، وليس بعطل في النموذج نفسه. رفع سقف الخطة أو تقليل معدل الاستدعاء، كلاهما يخفف المشكلة. سعر الإدخال نحو $2.00 لكل مليون رمز. تحقق من الرصيد وحدود المعدل في لوحة التحكم أولاً، ثم افحص الكود. عند تقدير التكلفة من p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18، أدخل ميزانية إعادة المحاولة أيضاً.

هل يجب إضافة تشويش عشوائي (jitter) عند إعادة المحاولة؟

عادةً لا حاجة لتعديل كود العمل، يكفي ضبط وتيرة الاستدعاء. إعادة المحاولة هي الخطوة الأولى الأكثر فعالية. مع احتساب التكلفة بـ p * 2 + cr * 0.2 + c * 12) : tier("200k_plus", p * 4 + cr * 0.4 + c * 18، لا تُحسب الطلبات الفاشلة ضمن الاستخدام. اجعل حد المحاولات من 3 إلى 5 وأضف تشويشاً عشوائياً. استخدم تراجعاً أُسّياً للأخطاء القابلة لإعادة المحاولة، وأرجع الخطأ فوراً للباقي.

هل يقلل تخزين النتائج مؤقتاً من 504؟

خفّض التزامن أولاً — معظم مشاكل معدل النقل تختفي بعدها. سياق 1M يعني أن المدخلات الطويلة تزيد زمن أول رمز بشكل ملحوظ. ابدأ بتزامن منخفض، وراقب لدقائق، ثم زد تدريجياً. سوّي قمم الحمل بالدفعات أو الطوابير — أكثر استقراراً من رفع التزامن أثناء التشغيل.

هل يمكن أن يؤدي تعيين max_tokens أعلى من اللازم إلى 504؟

هذه مشكلة إعدادات من جانب العميل، ولا يحتاج الخادم لأي تغيير. نافذة السياق 1M تحدد أقصى إدخال لكل طلب، وما يتجاوزها يُرفض مباشرة. قصّر المدخلات الطويلة أو لخّصها — ذلك يقلل 504 بشكل ملحوظ.

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

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

تحديث البيانات: 2026-10-10 15:45

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