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

في هذه الصفحة
"ليس لديك رموز كافية" ليست خطأً واحداً. يستخدم الناس هذه العبارة لخمس مشكلات مختلفة: الرصيد فارغ، الطلبات تأتي بسرعة كبيرة، المفتاح خاطئ، الموجه لا يتسع لنافذة سياق النموذج، أو الإجابة وصلت إلى حد الإخراج وتوقفت في منتصف الجملة. لكل مشكلة حل خاص بها، وأسرع طريقة للتمييز بينها هي حالة HTTP ونص الخطأ، وليس صياغة الرسالة.
ابحث عن الأعراض في الجدول، نفّذ الفحص، وطبّق الحل.
قم بتمرير الجدول لليمين →
| ما تراه | السبب المحتمل | الفحص | الحل |
|---|---|---|---|
| رفض الطلب؛ الرسالة تذكر الرصيد أو الفوترة أو الرصيد الائتماني | الرصيد فارغ | افتح حسابك وانظر إلى الرصيد | اشحن الرصيد، أعد المحاولة |
| يعمل، ثم يفشل على دفعات، يزول بعد توقف | حد المعدل: طلبات كثيرة جداً في وقت واحد أو في الدقيقة | هل يمر نفس الطلب بعد الانتظار دقيقة؟ هل ترسل طلبات بالتوازي؟ | أبطئ، أعد المحاولة بتأخير متزايد |
| كل طلب يفشل دفعة واحدة، حتى موجه من سطر واحد | مفتاح خاطئ أو منتهي الصلاحية أو مكتوب بشكل خاطئ، أو عنوان URL أساسي خاطئ | قارن المفتاح في الكود مع الموجود في حسابك؛ تحقق من عنوان URL | الصق مفتاحاً جديداً، أبقِه بعيداً عن الكود المصدري |
| الموجهات القصيرة تعمل، الطويلة تفشل | الموجه مع السجل أكبر من نافذة السياق | قدّر حجم كل ما ترسله | قلّص أو لخّص السجل، قسّم المستند، أو اختر نموذجاً بنافذة أكبر |
| لا خطأ، لكن الإجابة تنتهي في منتصف الجملة | الإجابة وصلت إلى حد الإخراج | finish_reason هو "length" |
ارفع max_tokens حتى حد النموذج، اطلب تنسيقاً أقصر، أو اطلب منه المتابعة |
ثلاثة معانٍ لكلمة "رموز"#
الكلمة في رسالة الخطأ تشير إلى ثلاث كميات مختلفة.
- الرصيد. الرموز هي ما تدفع مقابله، لذا غالباً ما تعني "نفاد الرموز" "نفاد المال". في خدمة الدفع المسبق هذا هو الرصيد.
- حد لكل دقيقة. يمكن حساب الحدود بالطلبات أو بالرموز في الدقيقة. إذا وصلت إلى أحدها، فالحل هو الانتظار وإرسال كمية أقل في المرة الواحدة.
- حجم النافذة. نافذة السياق هي عدد الرموز التي يمكن للنموذج قراءتها في طلب واحد، موجهك وإجابته معاً.
وشيء واحد لا تعنيه أبداً: مفتاح API ليس مخزوناً من الرموز. المفتاح يعرّف حسابك. ما ينفد هو الرصيد الذي يقف خلفه، أو حد مرتبط به. إذا كنت جديداً على الوحدة نفسها، ابدأ بـ ما هو الرمز في الذكاء الاصطناعي؟.
1. الرصيد فارغ#
تصف وثائق واجهة DeepSeek خطأ HTTP 402 Insufficient Balance بأنه "لقد نفد رصيدك". تستخدم واجهة Claude 402 billing_error لمشاكل الفوترة والدفع. أسماء مختلفة، نفس الموقف: المال ذهب.
تعمل CheapTokens بنفس المبدأ: رصيد مدفوع مسبقاً، ادفع حسب الاستخدام، رصيد واحد لجميع النماذج. لذا عندما يتعطل شيء، انظر إلى الرصيد أولاً. إنه فحص يستغرق عشر ثوانٍ ويستبعد السبب الأكثر شيوعاً.
2. وصلت إلى حد المعدل#
توثق DeepSeek خطأ HTTP 429 Rate Limit Reached على أنه طلبات تأتي بسرعة كبيرة، أو تجاوز حد التزامن أو QPS. الحل هو تنظيمها: طلبات متوازية أقل، وتأخير إعادة محاولة متزايد (1 ثانية، 2 ثانية، 4 ثوانٍ) بدلاً من ضرب نقطة النهاية.
فخ واحد. تعيد واجهة Claude أيضاً 429 rate_limit_error عند الوصول إلى سقف الإنفاق الشهري لفئتك، وهذا الرد لا يحتوي على ترويسة retry-after. لذا فإن 429 الذي لا يزول أبداً بعد الانتظار قد يكون متعلقاً بالمال، وليس بالسرعة. إذا لم يساعد الانتظار، عد إلى السبب 1.
3. المفتاح خاطئ#
HTTP 401 هو مشكلة مفتاح في كلتا الوثيقتين: تدرجه DeepSeek كمفتاح API خاطئ، وClaude كـ authentication_. الأسباب المعتادة هي مسافة أو سطر جديد عالق تم نسخه مع المفتاح، أو مفتاح تم حذفه أو إعادة إنشائه، أو مفتاح أُرسل إلى عنوان خاطئ. مفتاح من خدمة واحدة لا يعمل على عنوان URL لخدمة أخرى. بالنسبة لـ CheapTokens، عنوان URL الأساسي هو https:/.
للأخطاء الأخرى التي قد تواجهها أثناء الاتصال، راجع أخطاء الاتصال الشائعة وكيفية إصلاحها.
4. الموجه لا يتسع لنافذة السياق#
تحسب نافذة السياق كل ما يقرأه النموذج في طلب واحد: موجه النظام، وسجل المحادثة بأكمله، ورسالتك الجديدة، ومساحة للإجابة. في CheapTokens، نوافذ النماذج في كتالوجنا هي:
قم بتمرير الجدول لليمين →
| النموذج | نافذة السياق | الحد الأقصى للإخراج لكل إجابة |
|---|---|---|
| DeepSeek-V4-Flash | 380K | 32,768 رمزاً |
| GLM-5.3-Flash | 390K | 8,192 رمزاً |
| MiniMax-M2.7 | 200K | 8,192 رمزاً |
المحادثة ليس لديها ذاكرة خاصة بها. يرسل العميل السجل بأكمله مرة أخرى مع كل طلب، لذا كل طلب أكبر من السابق. إليك محادثة وهمية لإظهار النموذج (أرقام تقريبية، للتوضيح): موجه نظام من 1,000 رمز، وكل دور يضيف حوالي 500 رمز من السؤال و1,500 رمز من الإجابة، 2,000 في المجموع.
1,000 + 30 × 2,000 = 61,000 رمز
هذا هو حجم السجل بعد 30 دوراً. كل واحد من هذه الرموز يُحسب كمدخل مرة أخرى في الطلب التالي. الطلب الحادي والثلاثون يحمل سجل 61,000 رمز هذا بالإضافة إلى السؤال الجديد البالغ 500 رمز، لذا مدخلاته 61,500 رمز. مع إجابة من 1,500 رمز على MiniMax-M2.7 يكلف $0.0033. إليك النماذج الثلاثة لنفس الطلب، مع سعر OpenRouter للمقارنة:
| النموذج | الإدخال $/1M | الإخراج $/1M | التكلفة | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.0013 | $0.0027 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.0011 | $0.0032 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0033 | $0.0203 |
61,500 رمز إدخال و1,500 رمز إخراج إجمالًا. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.
نفس المحادثة تملأ أصغر نافذة في حوالي مائة دور:
(200,000 − 1,000) / 2,000 = 99.5
عندما تفيض، يرفض المزود الطلب. يختلف رمز الحالة حسب المزود، لذا اقرأ نص الخطأ. خطأ Claude 413 request_، على سبيل المثال، يتعلق بحجم الطلب بالبايت (32 ميغابايت للرسائل)، وهو حد مختلف عن نافذة الرموز.
ما يجب فعله:
- أسقط الأدوار الأقدم، أو استبدلها بملخص قصير.
- لا تلصق مستنداً كاملاً عندما تحتاج المهمة إلى فصل واحد.
- انتقل إلى نموذج بنافذة أكبر إذا كنت حقاً بحاجة إلى النص الكامل.
5. تم قطع الإجابة#
لا خطأ هنا، وهذا ما يجعل هذه المشكلة مربكة. توقف النموذج ببساطة لأنه وصل إلى max_tokens أو حد الإخراج الخاص بالنموذج. في تنسيق Chat Completions، العلامة هي finish_ على الاختيار.
في CheapTokens، يمكن لـ DeepSeek-V4-Flash إرجاع ما يصل إلى 32,768 رمزاً لكل إجابة؛ GLM-5.3-Flash وMiniMax-M2.7 حتى 8,192. إذا كان max_tokens أقل من ذلك، ارفعه. إذا كنت بالفعل عند الحد، قسّم المهمة ("اكتب الجزء 1 من 3") أو اطلب من النموذج المتابعة من الجملة الأخيرة.
يُسعّر إخراج MiniMax-M2.7 بـ $0.15 لكل 1M رمز، وهذا أرخص من OpenRouter على الإخراج.
نفس المشكلة بأسماء مختلفة#
يصنف المزودون نفس الأسباب بشكل مختلف. هذا ما تقوله وثائقهم اعتباراً من 20 أكتوبر 2026:
قم بتمرير الجدول لليمين →
| المشكلة | واجهة DeepSeek | واجهة Claude |
|---|---|---|
| الرصيد فارغ | 402 Insufficient Balance |
402 billing_error |
| حد المعدل | 429 Rate Limit Reached |
429 rate_limit_error (أيضاً سقف الإنفاق الشهري للفئة) |
| مفتاح سيئ | 401 | 401 authentication_ |
| الطلب كبير جداً | غير مدرج كرمز منفصل | 413 request_ (بايت، وليس رموزاً) |
| حد الإنفاق الذي تحدده بنفسك | غير مدرج | 400 invalid_ |
المصادر: رموز خطأ DeepSeek، أخطاء واجهة Claude. لا تعرض أي من الصفحتين تاريخ نشر، لذا تاريخ الفحص هو تاريخنا.
الخلاصة: لا تخمن من الصياغة. تعود الأخطاء كـ JSON مع كائن error يحمل type وmessage. طابق على الحالة والنوع، لأن نص الرسالة يتغير.
انظر إلى ما يعود فعلاً#
تطبع هذه القطعة الحالة ونص الطلب الفاشل وfinish_reason للطلب الناجح. إنها رسم تشخيصي، وليس سجل اختبار: شغّلها بمفتاحك الخاص واقرأ ما تحصل عليه.
# Placeholders: YOUR_API_KEY, MODEL_ID (a model id you have access to)
from openai import OpenAI, APIStatusError
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.cheaptokens.dev/v1")
try:
r = client.chat.completions.create(
model="MODEL_ID",
messages=[{"role": "user", "content": "Write a long checklist."}],
max_tokens=1000,
)
except APIStatusError as e:
# Read the status and the body, not the wording of the message
print("status:", e.status_code)
print("body:", e.body)
else:
print("finish_reason:", r.choices[0].finish_reason) # "length" = cut off
print("usage:", r.usage) # prompt_tokens and completion_tokensإذا أشار الفحص إلى الرصيد#
اشحن الرصيد وأرسل الطلب مرة أخرى. الأسعار في CheapTokens ثابتة لكل نموذج، لا توجد ساعات ذروة، ورصيد واحد يغطي كل نموذج، لذا لا تحتاج إلى شحن منفصل لكل منها. الأسعار الحالية هنا:
| النموذج | السياق | الإدخال $/1M | الإخراج $/1M | OpenRouter إدخال | OpenRouter إخراج |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning | 390K | $0.02 | $0.04 | $0.0413 | $0.0758 |
| DeepSeek-V4-Flash | 380K | $0.015 | $0.10 | $0.0475 | $0.1568 |
| MiniMax-M2.7 | 180K | $0.05 | $0.15 | $0.30 | $1.20 |
الأسعار بالدولار الأمريكي لكل مليون رمز (token). أرقام OpenRouter معروضة للمقارنة وقد تتغير.
أدخل حجمك الخاص في جدول التكلفة قبل الشحن. اشحن رصيدك عندما تبدو الأرقام صحيحة، وإذا كنت تريد تقدير عبء عمل أكبر أولاً، راجع كيفية تقدير تكلفة وكيل ذكاء اصطناعي.



