Felo API PlatformFelo API Platform

راهنماها

خطاها، محدودیت‌ها و تلاش مجدد

پاسخ‌های خطا و سرصفحه‌های محدودیت نرخ را بخوانید، با اطمینان دوباره تلاش کنید و خرابی‌های رایج را عیب‌یابی کنید.

هر Felo API بدنه خطای JSON با یک کد خطای پایدار و یک شناسه درخواست برمی‌گرداند. نخست وضعیت HTTP را بخوانید، سپس کد و بعد message را.

پوشش خطا

پاسخ‌های تولید جاری از وضعیت HTTP به‌عنوان status استفاده می‌کنند:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "Invalid API Key",
  "request_id": "202610221444486982113280416060637185"
}
فیلدمعنا
statusکد وضعیت HTTP، تکرارشده در بدنه
codeکد خطای قابل خواندن با ماشین
messageتوضیح قابل خواندن برای انسان
request_idشناسه مبهم این درخواست؛ آن را در درخواست‌های پشتیبانی بگنجانید

برخی نمونه‌های قدیمی endpoint از status: "error" و رشته کد متفاوتی استفاده می‌کنند. بر اساس وضعیت HTTP و code انشعاب بگیرید، نه بر اساس عبارت دقیق message.

کدهای رایج

HTTPکدمعناچه کاری کنید
400کد اعتبارسنجی مخصوص endpointپارامتری گم شده یا نامعتبر استدرخواست را اصلاح کنید؛ بی‌تغییر دوباره تلاش نکنید
401UNAUTHORIZEDکلید API گم‌شده، نامعتبر، منقضی یا لغوشدهAuthorization: Bearer $FELO_API_KEY بفرستید؛ اگر لغو شده کلید را بچرخانید
402INSUFFICIENT_CREDITSاعتبار سرویس کافی نیستدر Console Billing شارژ کنید، سپس دوباره تلاش کنید
404مخصوص endpointمدل، وظیفه یا مسیر ناشناختهشناسه مدل یا وظیفه و مسیر endpoint را بررسی کنید
429RATE_LIMITEDمحدودیت نرخ نقض شدبرای Retry-After صبر کنید، سپس دوباره تلاش کنید
5xxCHAT_FAILED، *_FAILED، SERVICE_UNAVAILABLEشکست بالادستی یا سرویسبا عقب‌نشینی دوباره تلاش کنید؛ اگر ادامه یافت با پشتیبانی تماس بگیرید

مرجع‌های endpoint کدهای مخصوص آن endpoint را فهرست می‌کنند. با خطاهای Chat API یا مرجع endpointی که صدا می‌زنید شروع کنید.

endpointهای تولید مدل

POST /api/v1/images/generations و POST /api/v1/videos/generations خطاهای سطح endpoint را در پوشش OpenAI برمی‌گردانند، نه در پوشش بالا:

{
  "error": {
    "message": "Model kind does not match this generation endpoint",
    "type": "invalid_request_error",
    "param": null,
    "code": "model_kind_mismatch"
  }
}

شناسه درخواست در سرآیند پاسخ X-Request-Id است، نه در بدنه. درخواست ردشده وظیفه‌ای نمی‌سازد. پس از آنکه وظیفه‌ای وجود دارد، بیشتر شکست‌ها به‌صورت وضعیت وظیفه پایانی در پاسخ 200 می‌آیند، نه خطای HTTP: status را برای failed یا interrupted بررسی کنید، سپس error.message را بخوانید. تولید تصویر و وظایف ناهمگام را ببینید.

شناسه‌های درخواست

بدنه‌های خطای Felo شامل request_id هستند. آن را همراه endpoint، وضعیت HTTP، کد خطا، شناسه مدل و شناسه وظیفه ثبت کنید. هرگز کلید API کامل را ثبت نکنید.

Model API همچنین یک سرآیند اختیاری درخواست X-Request-Id را می‌پذیرد. وقتی یکی می‌فرستید، برای عیب‌یابی بازتاب داده می‌شود و این امکان را می‌دهد گزارش‌های خودتان را با یک درخواست مرتبط کنید. اگر نمی‌فرستید، از request_id برگشتی استفاده کنید.

محدودیت نرخ

/v2/chat تنها endpoint Felo با محدودیت نرخ مستند و اعمال‌شده است:

  • برای هر کلید API، پنجره 1 دقیقه‌ای.
  • برای هر کاربر، پنجره 1 دقیقه‌ای.
  • برای هر کاربر، پنجره 1 ساعته.

کاربران با اشتراک مؤثر پولی Felo، از جمله اشتراک‌های سازمانی، معاف‌اند و سرآیند X-RateLimit-* دریافت نمی‌کنند. اگر وضعیت اشتراک قابل تأیید نباشد، محدودیت‌ها همچنان اعمال می‌شوند.

سرآیندمعنا
X-RateLimit-Limitمحدودیت تنگ‌ترین بُعدی که در حال حاضر اعمال می‌شود
X-RateLimit-Remainingکمینه سهمیه باقی‌مانده در سه بُعد
X-RateLimit-Resetبرچسب زمانی Unix به ثانیه برای بازنشانی پنجره جاری
Retry-Afterدر 429، تأخیر پیشنهادی به ثانیه

دیگر endpointهای /v2/** در حال حاضر محدودیت نرخ اعمال‌شده ندارند. درخواست‌های Model API همچنان ممکن است توسط ارائه‌دهنده بالادستی محدود شوند که می‌تواند به‌صورت 429 ظاهر شود.

محدودیت‌های عددی را سخت‌کد نکنید. سرآیندها را در هر پاسخ بخوانید.

سیاست تلاش دوباره

وضعیتدوباره تلاش؟
400، 401، 402، 404نه. نخست درخواست، کلید یا مانده را اصلاح کنید.
429بله، پس از Retry-After یا X-RateLimit-Reset.
5xx، مهلت‌ها، بازنشانی اتصالبله، با عقب‌نشینی نمایی و jitter.
قطع اتصال جریان در میانه پاسخفقط اگر برنامه شما تحمل تولید تکراری را دارد دوباره تلاش کنید.

حلقه پیشنهادی:

  1. فقط درخواست‌های بی‌اثر یا تکرارپذیر ایمن را دوباره تلاش کنید.
  2. از عقب‌نشینی نمایی استفاده کنید: حدود 1 ثانیه شروع کنید، دو برابر کنید و در 30 ثانیه سقف بگذارید.
  3. jitter تصادفی اضافه کنید تا کلاینت‌ها هم‌زمان دوباره تلاش نکنند.
  4. پس از شمار کمی تلاش متوقف شوید و خطا را نشان دهید.
  5. در 429، به‌جای برنامه خودتان به Retry-After احترام بگذارید.

توالی اشکال‌زدایی

  1. بررسی کنید کلید وجود دارد و لغو نشده است.
  2. با همان کلید GET /api/v1/models را صدا بزنید تا احراز هویت را تأیید کنید.
  3. کوچک‌ترین درخواست معتبر را به endpoint هدف بفرستید.
  4. جریان‌دهی، ابزارها یا ورودی‌های بزرگ را یکی‌یکی اضافه کنید.
  5. برای کار ناهمگام، پیش از ارسال دوباره وضعیت وظیفه را بررسی کنید.

مرتبط