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

يعني الرمز 403 أنك مُصادق لكن غير مسموح: المفتاح صالح، لكنه لا يملك إذن استدعاء هذا النموذج أو هذه المجموعة.

رمز 403 Forbidden يعني أنه تم التعرف على الهوية ولكن الوصول مرفوض. الفرق عن 401: يسأل 401 من أنت، بينما يقول 403 أنك لا تملك الصلاحية. عادةً يلزم إضافة النموذج إلى قائمة السماح أو المجموعة المرتبطة بمفتاحك.

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

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

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

  • هذا المفتاح غير مصرح له بهذا النموذج
  • النموذج ليس ضمن المجموعة المرتبطة بالمفتاح
  • المفتاح له قائمة IP مسموحة لا تشمل عنوانك الحالي
  • النموذج متوقف أو يتطلب صلاحيات أعلى

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

  • أضف هذا النموذج إلى قائمة المسموح للمفتاح في صفحة الرموز
  • تأكد أن مجموعة المفتاح تتضمن هذا النموذج
  • راجع إعدادات قائمة IP المسموحة
  • انتقل إلى نموذج مسموح لك باستدعائه

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

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

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

هل يرتبط 403 على gemini-3.1-pro-preview-customtools بحجم جسم الطلب؟

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

هل يرتبط 403 بطريقة فوترة gemini-3.1-pro-preview-customtools؟

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

هل يؤثر 403 على نماذج أخرى في الحساب نفسه؟

هذا الخطأ لا علاقة له بقدرة النموذج، بل هو على مستوى البوابة. في أغلب الحالات هو أمر مؤقت ويعود من تلقاء نفسه. وسوم قدرات هذا النموذج هي Reasoning, Tools, Files, Vision, Audio. حدّد أولاً إن كان على مستوى الحساب أم مستوى النموذج؛ التعامل معهما مختلف تماماً.

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

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

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

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

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

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