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

يعني الرمز 401 أن المصادقة فشلت: الطلب لا يحمل مفتاح API، أو أن المفتاح غير صالح أو محذوف أو منتهي.

رمز 401 Unauthorized يعني أن الطلب لا يحمل بيانات اعتماد صالحة. لم تتمكن البوابة من التعرف على هوية المُستدعي، لذلك لا يصل الطلب إلى النموذج المورّد أبداً. التحقق من ترويسة Authorization وحالة المفتاح هو المسار الوحيد.

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

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

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

  • ترويسة Authorization مفقودة
  • المفتاح مكتوب خطأ أو يحتوي مسافات زائدة
  • تم حذف المفتاح أو تعطيله في صفحة الرموز
  • استُخدم مفتاح من منصة أخرى بالخطأ

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

  • أرسل الترويسة بالصيغة Authorization: Bearer ثم مفتاحك
  • أنشئ مفتاحاً جديداً في صفحة الرموز
  • تأكد من عدم استخدام مفتاح خدمة أخرى
  • تحقق من المفتاح بطلب curl بسيط

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

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


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

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

عندما يُرجع gemini-3.1-pro-preview الخطأ 401، ما الحقول التي يجب قراءتها في جسم الاستجابة؟

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

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

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

هل يمكن للمعالجة غير المتزامنة أو المجمعة تجنّب 401؟

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

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

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

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

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

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

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