کش Middleware به صورت محلی در NodeJS با هوش مصنوعی
در زمان توسعهٔ برنامههای مبتنی بر هوش مصنوعی، اغلب متوجه خواهید شد که یک سری فراخوانی یکسان به API را بهصورت مکرر انجام میدهید. این کار میتواند منجر به افزایش هزینهها و کندی چرخه توسعه شود. یک caching middleware به شما امکان میدهد پاسخها را بهصورت local ذخیره کرده و هنگام ارائه ورودیهای مشابه، از آنها مجدداً استفاده کنید. این رویکرد در دو سناریو بسیار مفید است:
- تکرار در طراحی UI/UX: زمانی که تمرکز شما بر طراحی و تجربه کاربری است، نمیخواهید برای هر تغییر در کد، پاسخهای هوش مصنوعی مجدداً تولید شوند
- کار بر روی ارزیابیها: هنگام توسعهٔ ارزیابیها، نیاز است بارها یک پرامپت (prompt) مشابه را آزمایش کنید، اما در هر بار نیازی به تولید پاسخ جدید نیست
پیادهسازی
در این پیادهسازی، شما یک فایل JSON برای ذخیرهسازی پاسخها ایجاد میکنید. هنگام دریافت یک درخواست، ابتدا بررسی میکنید که آیا دقیقاً همین درخواست قبلاً مشاهده شده است یا خیر. اگر چنین باشد، پاسخ کششده بلافاصله بازگردانده میشود (چه به صورت یک پاسخ کامل، و چه به صورت بخشبخش از توکنها). در غیر این صورت، فرآیند تولید (generation) اجرا میشود، پاسخ ذخیره میگردد، و سپس بازگردانده میشود.
حتماً مسیر کش local خود را به فایل gitignore. اضافه کنید تا بهاشتباه در ریپازیتوری commit نشود.
نحوه عملکرد
در تولیدهای معمولی، پاسخها بهصورت کامل ذخیره و بازیابی میشوند. در مقابل، پیادهسازی streaming، هر توکن را بهمحض رسیدن دریافت میکند، کل دنباله را ذخیره کرده و در صورت وجود کش، با استفاده از تابع simulateReadableStream از SDK، تجربه استریم توکنبهتوکن را با سرعت کنترلشده (پیشفرض: ۱۰ میلیثانیه بین هر بخش) بازتولید میکند. این رویکرد، بهترین عملکرد را دارد:
- پاسخهای آنی برای پرسشهای تکراری
- حفظ رفتار استریم برای توسعه رابط کاربری (UI)
middleware تمام تبدیلهای لازم را برای غیرقابل تشخیص بودن پاسخهای کششده از پاسخهای جدید انجام میدهد؛ از جمله نرمالسازی فراخوانی Toolها و اصلاح فرمت timestampها. در مسیر middleware/my-cache-middleware.js قطعه کد زیر را قرار دهید:
استفاده از Middleware
Middleware را میتوان بهسادگی در تنظیمات قبلی SDK هوش مصنوعی ادغام کرد. در مسیر index.js قطعه کد زیر را قرار دهید:
متغیرهای محیطی BASE_URL و LIARA_API_KEY همان baseUrl سرویس هوش مصنوعی لیارا و کلید API لیارا هستند که باید در بخش متغیرهای محیطی برنامه خود، آنها را تنظیم کنید.
پروژه فوق را میتوانید بهصورت کامل در گیتهاب لیارا، مشاهده کنید.