ارسال بدنهی سفارشی از useChat
در حال حاضر، experimental_prepareRequestBody یک قابلیت آزمایشی است و تنها در فریمورکهای React و Solid و Vue در دسترس است.
بهصورت پیشفرض، useChat تمام پیامها و اطلاعات مربوط به درخواست را به سرور ارسال میکند. با این حال، معمولاً نیاز است که محتوای بدنهی ارسالشده به سرور کنترل شود، برای مثال:
- فقط آخرین پیام ارسال شود
- دادههای اضافی همراه با پیام ارسال شوند
- ساختار بدنهی درخواست تغییر کند
گزینهی experimental_prepareRequestBody به شما امکان میدهد محتوای بدنهی ارسالی به سرور را سفارشیسازی کنید. این تابع لیست پیامها، دادههای درخواست و بدنهی درخواست دریافتی از append call را به عنوان ورودی دریافت میکند و محتوایی که قرار است به سرور ارسال شود را بازمیگرداند.
مثال زیر نشان میدهد که چگونه فقط متن آخرین پیام را به سرور ارسال کنید. این کار میتواند زمانی که بخواهید حجم دادههای ارسالی به سرور را کاهش دهید، مفید باشد.
کلاینت
قطعه کد زیر را در فایل app/page.tsx قرار دهید:
سرور
ما باید سرور را طوری تنظیم کنیم که تنها متن آخرین پیام را دریافت کند. باقی تاریخچهی پیامها میتواند از فضای ذخیرهسازی (storage) بارگذاری شود. قطعه کد زیر را در مسیر app/api/chat/route.ts قرار دهید:
متغیرهای محیطی BASE_URL و LIARA_API_KEY همان baseUrl سرویس هوش مصنوعی لیارا و کلید API لیارا هستند که باید در بخش متغیرهای محیطی برنامه خود، آنها را تنظیم کنید.
پروژه فوق را میتوانید بهصورت کامل در گیتهاب لیارا، مشاهده کنید.