مسیردهی و تلاش مجدد
مسیردهی و تلاش مجدد
شما مدل را انتخاب میکنید؛ انتخاب مسیر کار داتهوش است. این صفحه میگوید آن انتخاب چطور انجام میشود و در خطا چه اتفاقی میافتد، چون همین رفتار تفاوت بین «دوباره بفرستم» و «دوباره نفرستم» را میسازد.
انتخاب مسیر
- داتهوش پیش از هر چیز درخواست شما را با مشخصات همین مدل میسنجد: وضعیت چرخهٔ عمر، قابلیتهای تأییدشده و محدودهٔ پارامترها.
- هویت مدل برای تمام عمر درخواست ثابت میماند. داتهوش هرگز مدل را عوض نمیکند: نه نسخهٔ دیگری، نه مدل «نزدیکتر»، نه مدل ارزانتر.
- اگر چند مسیر برای همان مدل وجود داشته باشد، یکی از مسیرهای امضاشده انتخاب میشود. هویت ارائهدهنده برای شما آشکار نمیشود.
جایگزینی مسیر (failover)
وقتی مسیری شکست بخورد، داتهوش در شرطهای محدود و مشخصی همان مدل را روی مسیر بعدی امتحان میکند:
- فقط پیش از نخستین بایت پاسخ به شما. بعد از آن هیچ تلاش دوبارهای روی مسیر دیگری انجام نمیشود.
- فقط برای وضعیتهایی که همان مسیر امضاشده بهعنوان قابلتلاشدوباره معرفی کرده است.
- فقط وقتی مطمئن باشد درخواست هرگز به ارائهدهنده نرسیده است.
اگر همهٔ مسیرهای آن مدل تمام شوند، پاسخ all_same_model_endpoints_unavailable است؛ این یک کد 503 قابلتلاشدوباره است، چون احتمالاً چند لحظه بعد مسیر سالمی وجود دارد.
اگر درخواستی شکست بخورد که وضعیتش نامعلوم است — مثلاً اتصال برقرار شده بود و بعد پاسخ نگرفتیم — داتهوش آن را تلاش دوباره نمیکند و به مسیر دیگری نمیفرستد. چنین درخواستی به هماهنگی مالی میرود تا مصرف و هزینهاش روشن شود، چون فرستادن دوبارهاش میتواند یعنی دو بار اجرا و دو بار هزینه.
جایگزینی موفق چه شکلی دارد
موفقشدن روی مسیر دوم خطا نیست: پاسخ همان پاسخ عادی است. تفاوت را فقط در متادیتای درخواست میبینید. برای کارهای آماری، این نشانه یعنی همان درخواست بالاخره سرو شده است.
قطع اتصال و پایان کار
- اگر شما اتصال را ببندید، داتهوش درخواست بالادست را لغو میکند و مصرفی که تا آن لحظه اندازهگیری شده تسویه میشود.
- وقتی همهٔ مسیرها از کار میافتند و هیچ بایتی نرفته باشد، رزرو مالی بیدرنگ آزاد میشود.
- درخواستی که رد شود ولی به ارائهدهنده نرسد، هزینهای ندارد (خطاها و محدودیتها).
مسیر شبکهٔ خروجی
دسترسی به بعضی ارائهدهندهها از این میزبان ممکن نیست یا ریسکدار است. بنابراین ترافیک خروجی داتهوش میتواند از یک تونل عبور کند. وقتی تونل در دسترس نباشد، فقط میزبانهایی که روی فهرست امضاشدهٔ مسیر مستقیم هستند مستقیم صدا زده میشوند؛ بقیه سریع و بدون تلاش بیفایده با all_same_model_endpoints_unavailable برمیگردند. هیچ درخواستی بیاطلاع شما از مسیر پیشبینینشده نمیرود.
تلاش دوباره از سمت شما
- فقط وقتی retryable در بدنهٔ خطا true است دوباره بفرستید.
- به retry_after_seconds احترام بگذارید و از backoff نمایی با jitter استفاده کنید.
- روی code شرط بگذارید، نه روی message.
- برای پاسخهای نیمهکاره (partial_stream_after_first_byte) خودکار تلاش دوباره نکنید.
جدول کامل و بهازای هر کد در خطاها و محدودیتها آمده است. اگر میخواهید بدانید سقفها از کجا میآیند، محدودیتها را ببینید.
کاری که در کنترل شما نیست
- انتخاب ارائهدهنده و مسیر. داتهوش آن را بر اساس سلامت مسیر و سیاست انجام میدهد.
- نمایش هویت ارائهدهنده. برای کاهش ریسک حسابهای بالادست، هویت ارائهدهنده منتشر نمیشود.
- تبدیل مدل در لحظهٔ خطا. چنین کاری وجود ندارد و وجود نخواهد داشت.
مطالب مرتبط
گام بعدی
محدودیتهای داتهوش دو دستهاند: سقفهایی که شما هنگام ساخت API key تعیین میکنید، و مرزهای ثابتی که خود gateway برای هر درخواست اعمال میکند. همهٔ آنها در سمت سرور اجرا میشوند.
BYOK یعنی «کلید ارائهدهندهٔ خودت»: بهجای اعتبار مشترک داتهوش، درخواست با اعتبارنامهٔ خودتان روی حساب خودتان با ارائهدهنده اجرا میشود. این صفحه هم معنای BYOK را توضیح میدهد و هم — مهمتر — میگوید امروز از آن چه چیزی در دسترس است و چه چیزی نیست.
این صفحه دقیقاً میگوید چه چیزی ذخیره میشود، چه چیزی نمیشود، و چه چیزی در کنترل داتهوش نیست. برای تصمیمهای حساس، همین تفکیک مهم است.