لعملاء الذكاء الاصطناعي: تعليمات الإعداد خطوة بخطوة — /docs/agents.md، فهرس الوثائق — /llms.txt.

الأخطاء والحدود

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

الحدود#

الأرقام — من الحقل limits في استجابة GET /v1/capabilities: فهناك دائمًا القيم المحدّثة.

الحدالقيمةعند التجاوز
الطلبات في الدقيقة لكل مفتاح120، ونافذة 60 ثانية من أول طلب429 rate_limit_exceeded والترويسة Retry-After؛ ولا تستهلك رفضات البوابة 5xx من الحصة
الطلبات المتزامنة للحسابمحدودةتنتظر الطلبات الزائدة في الطابور؛ وإن لم تنتظر — 429 queue_timeout
حجم جسم الطلب16 ميبيبايت413
طول الاستجابةحسب النموذج — الجدول أدناهإن تجاوز سقف النموذج — يُقتطع إلى السقف دون خطأ
المفاتيح الفرعيةحتى 50 لكل مفتاح إدارة، ولكل مفتاح حتى 120 طلب في الدقيقةلرفع السقوف — عبر الدعم

طول الاستجابة حسب النموذج#

بدون max_tokens، تُدرج البوابة القيمة الافتراضية: في وضع عدم البثّ — أقصر، ليدخل الرد ضمن المهلات، وفي البثّ — سقف النموذج. وmax_completion_tokens — هو الحقل نفسه.

modelالسقفبدون بثّفي البثّ
MiniMaxAI/MiniMax-M2.7819215008192
deepseek-ai/DeepSeek-V4-Flash-073132768150032768
zai-org/GLM-5.3-Flash819230008192

المهلات#

المرحلةالقيمةما يحدث
الانتظار للحصول على مكان في الطابور45 ث429 queue_timeout مع الترويسة Retry-After: 1
بداية استجابة الشبكة، بثّ150 ث504 upstream_timeout؛ ويُخصم تقدير رموز الإدخال
بداية استجابة الشبكة، بدون بثّ150 ث504 upstream_timeout؛ ويُخصم تقدير رموز الإدخال
توليد الاستجابة≈ 300 ثتقطع الشبكة التوليد: تأتي الاستجابة مع finish_reason: length — تابع بالطلب التالي
الفاصل بين chunkات البثّ30 ثيُغلق التدفق: finish_reason: stop في الchunk ‏joingonka-stream-stalled
إشارة النشاط في البثّ15 ثتعليق : keep-alive — وتتجاهله عملاء SSE
فتح التدفق30 ثقبل هذه اللحظة يأتي الرفض برمز استجابة، وبعدها — بالchunk ‏joingonka-error
استجابة مبكرة بدون بثّ90 ثتُعيد البوابة 200 وترسل مسافات كل 15 ث — ويبقى JSON صالحًا؛ ويأتي الخطأ بعد ذلك في الجسم بالحقل error، وتبقى الحالة 200

ما يُخصم عند المهلة

الطلب الذي تقبله الشبكة لا يمكن إلغاؤه. عند 504 upstream_timeout يُخصم تقدير رموز الإدخال، أما الإخراج فلا؛ وإعادة المحاولة خصم جديد. البث المقطوع قبل usage النهائي يُحتسب بالطريقة نفسها. اطلب الردود الطويلة مع stream: true.

رموز الأخطاء#

جسم الخطأ كائن error بحقول message, type, code, param؛ وليست كل الحقول موجودة في كل الأخطاء. اعتمد على الحالة وtype، وتحقق عبر code: نص message قد يتغير. تنسيق Anthropic في قسم تنسيق أخطاء Anthropic.

JSON
{
  "error": {
    "message": "Model is currently overloaded in the Gonka network",
    "type": "rate_limit_exceeded",
    "code": "upstream_rate_limited"
  }
}
الاستجابةمتىما ينبغي فعله
400 invalid_request_errorجسم غير صحيح: لا يوجد messages، أو الرسالة ليست كائنًا، أو الجسم ليس JSON؛ أو موديل غير معروف — مع param: model وقائمة الموديلات المتاحة في النصصحّح الطلب وفق نص الخطأ
400 invalid_request_error empty_content_after_normalizationالرسالة فارغة بعد التطبيع — مثل أن تحتوي على صورة فقطأضف نصًا إلى الرسالة
400 invalid_request_error web_search_privacy_sanitization_not_supportedإضافة web وprivacy-sanitization في الطلب نفسهأبقِ واحدة منهما فقط
400 invalid_request_error previous_response_id_not_supported conversation_not_supported item_reference_not_supported background_not_supported hosted_tool_choice_not_supportedOpenAI Responses: إشارة إلى رد محفوظ أو محادثة أو عنصر؛ الوضع الخلفي؛ اشتراط أداة مدمجةأرسل السجل كاملًا في input
400 api_errorرفضت الشبكة المعاملات — مثل قيمة reasoning_effort خارج قائمتهاصحّح القيمة وفق نص الخطأ
401 authentication_errorالمفتاح غير موجود أو مُبطَل أو بتنسيق غير معروفتحقق من المفتاح في صفحة gate.joingonka.ai/keys
402 insufficient_fundsالرصيد لا يكفي لتقدير الطلب؛ والمتبقي في balance_ngonkaاشحن الرصيد: gate.joingonka.ai/billing
402 insufficient_fundsطلب بلا مفتاح لا يأتي من الموقع (is_demo: true)مرّر مفتاح API
402 child_key_limit_exceededتجاوز حد الإنفاق للمفتاح — يومي أو شهري أو إجمالي؛ والمتبقي في daily_remaining, monthly_remaining, total_remainingارفع حد المفتاح من صفحة gate.joingonka.ai/keys أو انتظر إعادة الضبط
403 forbiddenمفتاح الإدارة gm- في طلب إلى الموديل؛ أو مفتاح API على مسار مخصص للوحة التحكم فقطللطلبات استخدم مفتاح jg- أو gc-؛ وإدارة الحساب من لوحة التحكم
404 invalid_request_error model_not_foundGET /v1/models/{model}: الموديل غير موجود في الكتالوج أو مخفي مؤقتًاخذ المعرّف من GET /v1/models
404 invalid_request_error not_found compact_not_supportedOpenAI Responses: /v1/responses/{id} وعناوين الحالة الأخرى، /v1/responses/compactاحتفظ بالسجل عندك؛ ولمستخدمي Codex CLI عيّن معرّف مزوّد خاصًا بك
404 invalid_request_errorمسار غير معروفتحقق من الطريقة والمسار والعنوان الأساسي
413 invalid_request_errorجسم الطلب أكبر من الحداختصر الطلب
415 invalid_request_errorالجسم ليس JSON وفق الترويسة: يلزم Content-Type: application/jsonأرسل Content-Type: application/json
429 rate_limit_exceededتجاوز عدد الطلبات في الدقيقة لكل مفتاح؛ وفي الجسم rate_limit مع limit, remaining, resetانتظر عدد الثواني المذكور في Retry-After
429 rate_limit_exceeded upstream_rate_limitedالموديل محمّل فوق طاقته في شبكة Gonkaأعد المحاولة بعد Retry-After أو اختر موديلًا آخر — النماذج
429 rate_limit_exceeded queue_timeout queue_fullكل أماكن الشبكة مشغولة: الطابور ممتلئ أو انتهت مدة الانتظارأعد المحاولة بعد Retry-After
500 server_errorخطأ داخلي في البوابةأعد المحاولة لاحقًا؛ وإذا تكرر، راسل الدعم وأرفق x-request-id
501 not_implementedPOST /v1/embeddings: لا توجد موديلات تضمين في الشبكةاستخدم خدمة تضمين أخرى
502 api_error upstream_unauthorizedرفض مزوّد الشبكة بيانات اعتماد البوابة — مفتاحك سليمأعد المحاولة بعد دقيقة
502 api_errorخطأ في شبكة Gonka؛ وcode من الشبكة إن أرسلتهأعد المحاولة بعد فاصل أو اختر موديلًا آخر
503 model_unavailable model_outage model_initializing model_unstable model_not_servedالموديل غير متاح الآن وفق فحوص الشبكة: عطل أو قيد التشغيل أو عدم استقرار أو لا أحد يخدمه؛ والرفض فوري بلا انتظاراختر موديلًا آخر — نص الخطأ سيرشدك إليه؛ والقائمة في النماذج
503 service_unavailableلا توجد عُقد متاحةأعد المحاولة لاحقًا
504 timeout upstream_timeoutقبلت الشبكة الطلب لكنها لم ترد في الوقت المحدد؛ وقد خُصم تقدير رموز الإدخالللردود الطويلة استخدم stream: true؛ وإعادة المحاولة خصم جديد

أخطاء داخل البث المفتوح#

قبل فتح البث يصل الرفض برمز استجابة عادي — كما لو لم يكن هناك بث. وبعد الفتح تصبح الحالة 200، ويصل الخطأ هكذا:

  • Chat Completions — قطعة joingonka-error بحقل error، ثم انقطاع بلا [DONE].
  • بلا بث بعد رد مبكر — الحالة 200 والجسم بحقل error.
  • Anthropic Messages — حدث event: error، ثم يُغلق البث.
  • OpenAI Responses — حدث response.failed، والسبب في response.error.code.
  • Legacy Completions — data: {"error": …}، ثم [DONE].
SSE
data: {"id":"joingonka-error","object":"chat.completion.chunk","model":"MiniMaxAI/MiniMax-M2.7","choices":[],"error":{"message":"Gonka network error","type":"api_error"}}

تنسيق أخطاء Anthropic#

  • POST /v1/messages يرد بمغلّف Anthropic: {"type": "error", "error": {"type", "message"}}.
  • تحتفظ رفوض البوابة بـtype من الجدول أعلاه (insufficient_funds وmodel_unavailable وغيرها)؛ ولا يوجد حقل code في هذا المغلّف — السبب في النص.
  • أخطاء صيغة الطلب — invalid_request_error: لا رسائل أو max_tokens، أو استدعاء أداة بلا اسم، أو موديل غير معروف.
  • مسار غير معروف — not_found_error، وجسم كبير جدًا — request_too_large.
SSE
event: error
data: {"type":"error","error":{"type":"timeout","message":"Upstream timeout"}}

ما الذي يُعاد#

  • بعد فاصل من Retry-After: 429
  • بفاصل متزايد — 1 ثم 2 ثم 4 ثوانٍ وهكذا: 500, 502, 503 service_unavailable, 504
  • بموديل آخر: 503 model_unavailable
  • لا تُعد المحاولة بلا تغيير — صحّح الطلب أو المفتاح أو الرصيد: 400, 401, 402, 403, 404, 413, 415, 501

كل إعادة محاولة بعد 504 خصم جديد لتقدير الإدخال؛ وللردود الطويلة فعّل stream: true.

إذا تكرر الخطأ، راسل الدعم وأرفق x-request-id من ترويسات الاستجابة.