لاراول برای هوش مصنوعی: ایجنتهایی که جلوی قطعی سرپا میمونن
خلاصهٔ کاملتر
تو قسمت نهم سری «Ship AI with Laravel»، هریس رافتوپولوس نشون میده چطور یه ایجنت هوش مصنوعی رو برای پروداکشن آماده کنی: چیکار کنی وقتی OpenAI نصف شب قطع میشه، وقتی صدتا کاربر همزمان درخواست میفرستن، یا وقتی چند هفته بعد بخوای بفهمی چرا یه جواب اشتباه بوده.
اولین موضوع، فیلاُور بین سرویسدهندههاست. بهجای قفل کردن ایجنت رو یه سرویسدهنده، نویسنده یه آرایه از سرویسدهندهها رو پاس میده تا اگه OpenAI جواب نده، SDK خودکار بره سراغ Anthropic و بعد Gemini؛ فقط سرویسدهنده پشت صحنه عوض میشه و کاربر اصلاً متوجه نمیشه. این تنظیمات از سطح فراخوانی به کانفیگ منتقل میشه تا بدون دست زدن به کد قابل تغییر باشه، و یه لیسنر هم برای رویداد AgentFailedOver اضافه میشه تا همون لحظه که یه سرویسدهنده قطع میشه بهت خبر بده.
موضوع بعدی صفهاست. نه هر فراخوانی هوش مصنوعی نیاز داره درخواست رو بلاک کنه؛ نویسنده کلاسیفایر تیکت از قسمت دوم رو میگیره و بهجای اجرای مستقیم، اونو میفرسته تو صف لاراول. کاربر بلافاصله تأییدیه میگیره و کار هوش مصنوعی پشت صحنه انجام میشه، در حالی که فیلاُور رو جاب صفشده هم فعال میمونه.
بعد میانافزار میاد. SDK اجازه میده هر پرامپت و پاسخی که از ایجنت رد میشه رو گیر بندازی، دقیقاً شبیه میانافزار HTTP. نویسنده سهتا میسازه: یکی هر پرامپت رو همراه متادیتای پاسخ مثل تعداد توکن، سرویسدهنده و زمان اجرا لاگ میکنه؛ یکی محدودیت نرخ درخواست رو برای هر کاربر روی ده پرامپت در دقیقه اعمال میکنه؛ و یکی هم با شمارش توکن هزینه رو بهازای هر کاربر، هر ایجنت و هر روز حساب میکنه.
این سه میانافزار رو با ترتیب مشخصی به ایجنت وصل میکنه: محدودیت نرخ باید قبل از لاگ کردن یا حساب کردن هزینه اجرا بشه، چون دلیلی نداره وقتتو صرف لاگ یا هزینهی درخواستی کنی که قراره رد بشه.
نتیجهی نهایی، ایجنتیه که جلوی قطعی سرویسدهنده دووم میاره، کارهای پسزمینه رو مدیریت میکنه، و هر چیزی که برای دیباگ و بودجهبندی تو پروداکشن لازم داری رو لاگ میکنه. قسمت بعدی سری قراره کل سیستم با Pest تست بشه: فیک کردن ایجنتها، assert کردن پرامپتها و تست ابزارها.
نکات کلیدی:
- فیلاُور خودکار بین چند سرویسدهنده هوش مصنوعی (OpenAI، Anthropic، Gemini) با رویداد AgentFailedOver
- انتقال فراخوانیهای سنگین هوش مصنوعی به صف لاراول برای پاسخدهی سریعتر به کاربر
- میانافزار برای لاگ کردن، محدودیت نرخ درخواست (۱۰ پرامپت در دقیقه) و ردیابی هزینه بر اساس توکن
- ترتیب اجرای میانافزارها مهمه: اول محدودیت نرخ، بعد لاگ و ردیابی هزینه




