AR ▾
احصل على مفتاح API

تم التحديث

مفتاح DeepSeek API لا يعمل: الأسباب والحلول

عند ظهور خطأ مفتاح DeepSeek API لا يعمل، يكون المفتاح نفسه السبب أقل مما تتوقع. تأتي معظم الأعطال من Base URL، رصيد فارغ، اسم نموذج خاطئ أو عميل يرسل المفتاح في المكان الخطأ.

مفتاح API محجوب في أنبوب مع أنبوب احتياطي يحيط به، يوضح استكشاف أخطاء مفتاح API
رسم توضيحي لمرحلة تحتوي على أقنعة عائمة متصلة بخادم، تمثل دردشة أدوار اللعب مع API في SillyTavern

ابدأ باختبار مكون من سطر واحد

قبل أن تغير أي شيء في تطبيقك، أزل التطبيق من المعادلة. يكفي استدعاء curl واحد لمعرفة ما إذا كان مفتاح API، وURL، واسم النموذج يعملون معاً. استبدل العلامات النائبة بالقيم من لوحة التحكم والمستندات الخاصة بمزود الخدمة.

curl -i https://YOUR-PROVIDER/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"YOUR-MODEL","messages":[{"role":"user","content":"ping"}]}'

يُطبع العلم -i سطر الحالة والرؤوس، وهي أهم من الجسم. إذا نجح curl وفشل تطبيقك، فإن الخطأ في إعدادات التطبيق. إذا فشل curl أيضاً، فالمشكلة في مفتاح API، أو الحساب، أو نقطة النهاية.

اقرأ رمز الحالة أولاً

الحالةالمعنى المعتادما يجب التحقق منه
401تم رفض مفتاح APIانسخ الأخطاء، المسافات الزائدة، مفتاح ملغي أو محذوف، مفتاح من مزود مختلف
402 أو رسالة عن الرصيدلا يوجد رصيد متبقيصفحة رصيد الحساب والفواتير
404مسار أو نموذج خاطئعنوان URL الأساسي، اللاحقة /v1، تهجئة اسم النموذج
429طلبات كثيرة جداًطلبات في الدقيقة، المكالمات المتزامنة، رؤوس إعادة المحاولة
5xx أو انتهاء المهلةجانب المزود أو الشبكةصفحة حالة المزود، أعد المحاولة لاحقاً، التوجيه الإقليمي

هذه هي المعاني الشائعة عبر مزودي الخدمة بأسلوب OpenAI. يوثق كل مزود رموزه الدقيقة الخاصة به، لذا تحقق من مستنداته الحالية للتفاصيل.

مفتاح API نفسه

مفاتيح API سلاسل طويلة، وتحدث الأعطال فيها بطرق مملة. الصق مفتاح API في محرر نصوص عادي وابحث عن مسافة أو سطر جديد في النهاية، أو علامة اقتباس في البداية، أو سطر جديد أضافه تطبيق دردشة. تأكد من أن رأس الطلب يقرأ Authorization: Bearer KEY مع مسافة واحدة بعد كلمة Bearer. إذا وضعت مفتاح API في متغير بيئة، اطبع طوله في تطبيقك (وليس قيمته) للتأكد من تحميله.

حالتان أخريان شائعتان. أولاً، أنشأت مفتاح API، أغلقت الصفحة، ونسخت نسخة مقنعة. تظهر معظم لوحات التحكم مفتاح API مرة واحدة فقط، لذا أنشئ مفتاحاً جديداً. ثانياً، أنت تستخدم مفتاحاً من خدمة واحدة ضد عنوان URL لخدمة أخرى. مفتاح API صالح فقط للمزود الذي أصدره.

الرصيد والفواتير والرصيد المجاني

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

إذا كنت ترغب في مقارنة كيفية تعامل خدمة مدفوعة مسبقًا أخرى مع هذا، فإن نموذجنا بسيط: تشتري رصيدًا، ويتم خصم المكالمات منه بمعدل $0.15 لكل مليون رمز إدخال و$0.50 لكل مليون رمز إخراج، ولا يتم فرض رسوم على الطلبات الفاشلة أو المرفوضة، ولا ينتهي الرصيد أبدًا. يمكنك قراءة الرصيد باستخدام GET /v1/balance أو من خلال رأس X-Balance-USD في كل استجابة.

عنوان URL الأساسي واسم النموذج

السبب الأكثر تكرارًا في الأدوات مثل SillyTavern وJanitor AI وإضافات المحرر هو خطأ بسيط في كتابة عنوان URL الأساسي. الأخطاء الشائعة: فقدان /v1، تكرار /v1/v1، استخدام http بدلاً من https، أو لصق المسار الكامل /chat/completions في حقل يضيفه بالفعل. حقل النموذج هو الفخ الآخر. يجب أن يطابق معرف نموذج يدرجه المزود. اعرضها باستخدام GET /v1/models إذا كان المزود يدعم ذلك، أو اقرأ المستندات الحالية.

توجد أدلة الإعداد لأدوات محددة على هذا الموقع: استخدام مفتاح في SillyTavern، في Janitor AI وفي VS Code.

حدود المعدل والتزامن

قد تُفعّل موجة الطلبات المتزامنة حدّ المعدل (429) حتى مع مفتاح API صالح. ابحث عن رأس Retry-After وقلّل وتيرة الطلبات. يبدو إعادة المحاولة الأدنى في Python كالتالي:

import time
from openai import OpenAI, RateLimitError

client = OpenAI(base_url="https://api.deepseekapikey.com/v1", api_key="YOUR_KEY")

def ask(prompt):
    for attempt in range(4):
        try:
            r = client.chat.completions.create(
                model="uncensored",
                messages=[{"role": "user", "content": prompt}],
            )
            return r.choices[0].message.content
        except RateLimitError:
            time.sleep(5 * (attempt + 1))
    raise RuntimeError("still rate limited")

على نقطة النهاية لدينا، يسمح المفتاح الكامل بـ 8 طلبات متزامنة و300 طلب في الدقيقة. يحتفظ الطلب المُدفق بمكانه حتى ينتهي البث. رمز الخطأ هو rate_limited أو concurrency، ويعود الحمل الزائد المؤقت بـ 429 مع Retry-After: 5.

مشاكل الشبكة والمناطق الجغرافية

إذا علّق curl أو أعاد التعيين، فقد تكون المشكلة بينك وبين المزود: وكيل مؤسسي، أو VPN، أو DNS، أو حظر إقليمي. جرب شبكة مختلفة، وتحقق من أن وكيلك يمرر رؤوس Authorization، وزد مهلة العميل الخاص بك للأنشاءات الطويلة. يمكن أيضًا قطع استجابات البث بواسطة الوكلاء الذين يقومون بالتخزين المؤقت؛ اختبر مع stream: false لفصل المشكلتين.

قائمة مراجعة يمكنك تشغيلها في خمس دقائق

  1. قم بتشغيل اختبار curl ولاحظ رمز الحالة.
  2. أنشئ مفتاحًا جديدًا واختبره. إذا عمل المفتاح الجديد، فإن المفتاح القديم تم نسخه بشكل خاطئ أو إلغاؤه.
  3. تحقق من الرصيد وأي تاريخ انتهاء على الرصيد.
  4. قارن عنوان URL الأساسي ومعرف النموذج مع مستندات المزود، حرفًا بحرف.
  5. أرسل طلبًا واحدًا بدون بث متدفق أو أدوات وموجّه قصير. أضف الميزات واحدة تلو الأخرى.
  6. تحقق من المكالمات المتزامنة. إذا كان تطبيقك يطلق عدة طلبات في وقت واحد، فقلل من التزامن.
  7. جرب شبكة أخرى أو أوقف تشغيل VPN.
  8. انظر إلى رؤوس الاستجابة، بما في ذلك أي معرف طلب. يمكن لفريق الدعم العثور على مكالمتك من خلال هذا المعرف.

تكتشف الخطوة الخامسة عددًا مفاجئًا من الأخطاء. التعريفات غير الصالحة للأدوات، أو قيمة max_tokens الكبيرة جدًا، أو جسم الطلب الذي يتجاوز حد الحجم قد تُرجع جميعها أخطاء تشبه مشاكل مفتاح API. في نقطة النهاية لدينا، حد جسم الطلب هو 8 ميجابايت، ويحمل كل استجابة رأس X-Request-Id يمكنك الاستشهاد به للدعم.

إعداد نقطة نهاية احتياطية

تحدث الانقطاعات وحدود المعدل مع أي مزود، لذا احتفظ بنقطة نهاية متوافقة مع OpenAI ثانية في إعداداتك. نموذجنا هو نموذج مفتوح الأوزان مُضيف ومُضبط للإجابة بدون رفض المحتوى للاستخدام القانوني للبالغين. إنه ليس API الرسمي الخاص بـ DeepSeek وليس موجّهًا (router)، لذا توقع إجابات وسلوكًا مختلفين. يتطلب التبديل إعدادين: عنوان URL الأساسي https://api.deepseekapikey.com/v1 والنموذج uncensored.

curl https://api.deepseekapikey.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}]}'

يمكن للمستخدمين الجدد المطالبة بـ $0.50 من رصيد تجريبي بنقرة واحدة على صفحة مفتاح API، ساري لمدة 7 أيام. تعمل الشحنات من $20 إلى $500 بالعملات المشفرة فقط؛ انظر صفحة التسعير والمستندات للتفاصيل.

أسئلة وأجوبة

لماذا يعمل مفتاحي في curl ولكن ليس في تطبيقي؟

على الأرجح يحتوي التطبيق على عنوان URL الأساسي خاطئ، أو اسم نموذج خاطئ، أو نسخة قديمة من المفتاح. قارن إعداداته مع مكالمة curl العاملة حرفًا بحرف.

هل يضمن مفتاح صالح نجاح الطلبات؟

لا. قد يفشل الرصيد الفارغ، أو حدّ المعدل، أو اسم نموذج غير معروف، حتى مع مفتاح صالح تماماً.

هل يمكنني استخدام نفس الكود مع مزوّد مختلف؟

إذا كان الاثنان متوافقين مع OpenAI، نعم. غيّر عنوان URL الأساسي، والمفتاح، ومعرف النموذج.

هل نقطة النهاية الخاصة بك هي نفس نموذج DeepSeek؟

لا. إنه نموذج مفتوح الأوزان تشغله مزوّد مستقل، وهو ليس API الرسمي لأي بائع.

مفتاحك على بُعد خطوة واحدة

أنشئ حسابًا، وانسخ المفتاح، ثم غيّر عنوان URL الأساسي. هذا هو الإعداد الكامل.

احصل على مفتاح API