استریم متن با هوش مصنوعی با ساخت RSC
این مثال از React Server Components (یا همان RSC)، استفاده میکند. اگر که قصد دارید از client side rendering و هوکها استفاده کنید؛ میتوانید به این مستندات مراجعه کنید.
تولید متن گاهی ممکن است زمانبر باشد؛ مخصوصاً زمانی که در حال تولید چند تا پاراگراف طولانی هستید. در این حالتها، قابلیت استریم متن بهصورت بلادرنگ به سمت کلاینت در هنگام فرایند تولید متن، میتواند مفید باشد. این کار به کلاینت این امکان را میدهد که متن تولید شده را در زمانی که توسط LLM تولید میشود، مشاهده کند؛ به جای اینکه منتظر بماند تا کل متن تولید شود.
کلاینت
بیایید یک کامپوننت ساده React ایجاد کنیم که هنگام کلیک روی یک دکمه، تابع generate را فراخوانی میکند. تابع generate، تابع streamText را فراخوانی خواهد کرد که در ادامه، یک متن بر اساس پرامپت ورودی، تولید میکند. سپس متنی را بر اساس prompt تولید میکند. برای ارائه stream متن در سمت کلاینت، از تابع readStreamableValue از ماژول ai-sdk/rsc@ استفاده خواهیم کرد.
در مسیر app/page.tsx، قطعه کد زیر را قرار دهید:
سرور
در سمت سرور، باید تابع generate را پیادهسازی کنیم که درون خود، تابع streamText را فراخوانی میکند. تابع streamText، یک متن بر اساس پرامپت ورودی تولید میکند. برای استریم متن تولید شده به سمت کلاینت، باید از createStreamableValue استفاده کنیم. این تابع، هر مقدار قابل تغییری را میگیرد و آن را به سمت کلاینت، استریم میکند.
با استفاده از DevTools، میتوانیم ببینیم که متن تولیدشده، به سمت کلاینت بهصورت بلادرنگ، استریم میشود.
در مسیر app/actions.ts، قطعه کد زیر را قرار دهید:
متغیرهای محیطی BASE_URL و LIARA_API_KEY همان baseUrl سرویس هوش مصنوعی لیارا و کلید API لیارا هستند که باید در بخش متغیرهای محیطی برنامه خود، آنها را تنظیم کنید.
پروژه فوق را میتوانید بهصورت کامل در گیتهاب لیارا، مشاهده کنید.