پرش به محتوا
همه مستندات

مرجع

خطاها

خطاها با شکل OpenAI برمی‌گردند، با یک code پایدار که می‌توانی رویش تطبیق بدهی و یک message که برای آدم‌ها نوشته شده. تماس ردشده یا ناموفق هزینه‌ای ندارد.

بررسی‌شده در ۴ آبان ۱۴۰۵

شکل خطا

Response
{
  "error": {
    "type": "rate_limit_error",
    "code": "daily_cap",
    "message": "This call needs up to $0.02 and the key has $0.01 left of its $2.00 daily cap, which resets at 00:00 UTC. …"
  }
}

با code تطبیق بده، نه با message: متن پیام ممکن است عوض شود، کدها ثابت می‌مانند. type از OpenAI پیروی می‌کند، پس SDKها همان استثنایی را که انتظار داری پرتاب می‌کنند.

همهٔ کدها

وضعیتکدکیراه‌حل
401missing_keyکلیدی فرستاده نشده.آن را به شکل Authorization: Bearer sk-nokeep-… بفرست. در کنسول یکی بساز، یا اول sk-nokeep-test را امتحان کن.
401invalid_keyکلید اشتباه است یا باطل شده.کلید را دوباره از جایی که ذخیره‌اش کردی کپی کن؛ کنسول فقط چهار نویسهٔ آخرش را نشان می‌دهد. اگر گم شده، یکی تازه بساز.
403account_frozenامکانات پولی روی حسابی که کلید مال آن است متوقف شده.از صفحهٔ تماس به ما پیام بده.
429rate_limitedکلید در یک دقیقه بیش از ۱۲۰ درخواست فرستاده (برای کلید آزمایشی ۲۰، به‌ازای هر نشانی).به اندازهٔ ثانیه‌های Retry-After صبر کن، بعد دوباره امتحان کن.
429daily_capاین تماس ممکن است از سقف روزانهٔ کلید بگذرد.سقف را در کنسول بالا ببر، max_tokens را کم کن، یا تا 00:00 UTC صبر کن (Retry-After می‌گوید چقدر).
402insufficient_creditsاعتبار خریده‌شدهٔ حساب برای این تماس کافی نیست.از کنسول از $5 شارژ کن، یا max_tokens را کم کن. اعتبار طرح‌ها در اپ می‌ماند.
400invalid_jsonبدنهٔ درخواست یک شیء JSON نیست.Content-Type: application/json و یک شیء JSON بفرست.
413too_largeدرخواست بیشتر از ۱۲ مگابایت است.تصویرها را به‌جای data URL به‌صورت لینک بفرست، یا هر بار تعداد کمتری بفرست.
404model_not_foundاین شناسهٔ مدل مال ما نیست.GET /v1/models شناسه‌ها را فهرست می‌کند. دنبال غلط تایپی یا -uncensored جاافتاده بگرد.
400invalid_messagesmessages نیست یا خالی است، خیلی طولانی است، نقش ناشناخته دارد، یا یک پیام tool بدون tool_call_id است.بین ۱ تا ۲٬۰۰۰ پیام بفرست، هر کدام با نقش system، developer، user، assistant یا tool.
400unsupported_nn بیشتر از 1 است.برای هر پاسخی که می‌خواهی یک درخواست جدا بفرست.
400invalid_reasoning_effortمدل این reasoning_effort را نمی‌پذیرد.DeepSeek مقدارهای none، low، high یا max را می‌گیرد. GLM مقدار low یا high را.
400unsupported_tool_choiceGLM یک تابع نام‌دار یا "required" را به‌عنوان tool_choice گرفته.به GLM مقدار auto یا none بفرست؛ ابزارهایش را خودش انتخاب می‌کند. DeepSeek همهٔ حالت‌ها را می‌گیرد.
400unsupported_inputیک بخش از محتوا از نوعی است که مدل نمی‌تواند بخواند.تصویرها را به DeepSeek بفرست؛ GLM فقط متن می‌خواند.
400too_many_imagesبیش از ده تصویر در یک درخواست.حداکثر ده تا بفرست.
422hard_limitدرخواست از یکی از محدودیت‌های قطعیِ شرایط رد می‌شود.هزینه‌ای کم نشد. آن پیام را از تاریخچه‌ای که برمی‌گردانی حذف کن، وگرنه تماس بعدی هم متوقف می‌شود.
400rejectedمدل نتوانست درخواست را همان‌طور که فرستاده شده بپذیرد.پارامترها را با فهرست مدل در مدل‌ها مقایسه کن. هزینه‌ای کم نشد.
503busyمدل مشغول است.بعد از ثانیه‌های Retry-After دوباره امتحان کن. هزینه‌ای کم نشد.
503model_unavailableمدل از طرف ما خاموش است.فعلاً از مدل دیگر استفاده کن؛ صفحهٔ وضعیت نشان می‌دهد کی برمی‌گردد.
502upstream_errorمدل پیش از نوشتن حتی یک کلمه شکست خورد.کمی بعد دوباره امتحان کن. هزینه‌ای کم نشد.
404not_foundاین مسیر وجود ندارد.API این‌ها را ارائه می‌دهد: GET /v1/models، GET /v1/models/{id}، GET /v1/status و POST /v1/chat/completions.
404api_closedAPI خاموش است.بعداً دوباره امتحان کن.
وسط استریمکدکیراه‌حل
—stream_cutمدل وسط استریم، پیش از تمام کردن، متوقف شد.فقط آنچه نوشته شده حساب می‌شود، نه بیشتر. برای گرفتن بقیه دوباره امتحان کن، یا از همان جایی که رسیده ادامه بده.

کدام‌ها را دوباره امتحان کنیم

  • 429 rate_limited، 503 busy و 502 upstream_error را دوباره امتحان کن، بعد از ثانیه‌های Retry-After اگر وجود داشته باشد.
  • خطاهای 400، 401، 402، 404 و 422 را دوباره امتحان نکن: همان درخواست همان جواب را می‌گیرد.
  • یک 429 daily_cap تا ساعت ۰۰:۰۰ UTC صبر می‌کند. به‌جایش سقف را بالا ببر.